3

After some time researching and trying different things I still cannot get my @ExceptionHandler to be invoked in my jUnit integration test. Please, help me understand why?

@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 Answer 1

4

Spring: RESTful controllers and error handling helped me, my problem was the lack of this:

@Component public class AnnotatedExceptionResolver extends AnnotationMethodHandlerExceptionResolver{ public AnnotatedExceptionResolver() { setOrder(HIGHEST_PRECEDENCE); } } 
Sign up to request clarification or add additional context in comments.

1 Comment

Great answer - I couldn't figure out why my @ExceptionHandler was being ignored but figured it might be related to the fact that I'm also using a SimpleMappingExceptionResolver. This fixed the issue for me.