@ExceptionHandler未被调用

时间:2012-05-28 15:15:46

标签: spring exception-handling

经过一段时间的研究和尝试不同的事情后,我仍然无法在我的jUnit集成测试中调用我的@ExceptionHandler。请帮我理解原因?

@RequestMapping(value = "/someURL", method = RequestMethod.POST)
public ModelAndView batchUpload(@RequestBody final String xml, @RequestParam boolean replaceAll)
    throws IOException, URISyntaxException, SAXException, ParserConfigurationException, InvocationTargetException, IllegalAccessException, UnmarshallingFailureException
{
StreamSource source = new StreamSource(new StringReader(xml));
DomainClass xmlDomainClass;

try
{
    xmlDomainClass = (DomainClass) castorMarshaller.unmarshal(source);
}
catch (UnmarshallingFailureException me)
{
    // some logging. this gets executed
    throw me;
}

@ExceptionHandler(Throwable.class)
public ModelAndView handleUnmarshallingExceptions(Throwable th)
{
// never executes anything in here
return new ModelAndView( /*some parameters */ );
}

1 个答案:

答案 0 :(得分:5)

Spring: RESTful controllers and error handling帮助了我,我的问题是缺少这个:

@Component
public class AnnotatedExceptionResolver extends AnnotationMethodHandlerExceptionResolver{
  public AnnotatedExceptionResolver() {
    setOrder(HIGHEST_PRECEDENCE);
  }
}