我正在使用@ControllerAdvice
注释来定义应用程序级别的异常。现在的问题是我有两个@ControllerAdvice
类,一个用于REST,一个用于普通的Web应用程序。当我为Exception.class
定义@ExceptionHandler
时,只考虑第一个。我如何区分两者?或者我怎样才能捕获异常并确定它发生的位置?有没有办法,或者我需要使用控制器特定的异常处理程序?处理Spring MVC中的异常以及Rest API
1
A
回答
0
我解决了这个问题,为我的应用程序创建一个自定义异常,并为它们中的每一个赋予一个异常处理程序方法,并使用@exception处理程序。
我还使用方面来确保每个异常都转换为任何自定义异常。
@Aspect
@Component
public class ExceptionInterceptor {
@AfterThrowing(pointcut = "within(x.y.package..*)", throwing = "t")
public void toRuntimeException(Throwable t)
throws ApplicationException1, ApplicationException2,ApplicationException3 {
if (t instanceof ApplicationException1) {
throw (ApplicationException1) t;
} else if (t instanceof ApplicationException2) {
throw (ApplicationException2) t;
} else
throw (ApplicationException3) t;
}
}
这些将控制转移到@controlleradvice。
-1
我注意到这已经被留下了一个月左右,所以它可能是旧的。但是这篇文章可能会帮助http://www.baeldung.com/2013/01/31/exception-handling-for-rest-with-spring-3-2/。
第3.5节可能是您正在寻找的自定义异常解析器。
+0
谢谢你的答案,但我解决了它的方面,使所有的例外将抛出一个地方。 –
+0
我认为这并不能解释如何在同一个Spring App中为REST API和HTML页面进行异常处理。 -1 –
相关问题
- 1. Spring REST API自定义异常处理
- 2. yii2 rest api异常处理
- 3. 在Spring MVC中处理JWT异常
- 4. 如何处理Rest API中的异常Spring引导
- 5. Spring批处理+ Spring API REST
- 6. Spring REST异常处理FileUploadBase $ SizeLimitExceededException
- 7. REST中的异常处理
- 8. Spring MVC的:正确的异常处理
- 9. 处理Spring MVC控制器的异常
- 10. 使用HandlerExceptionResolver处理Spring MVC异常
- 11. 何处以及如何处理spring + hibernate异常?
- 12. Spring REST/MVC&安全异常处理和过滤链需求
- 13. 处理REST异常
- 14. Spring 4 mvc全局异常处理
- 15. Spring MVC:全局异常处理程序
- 16. spring security 3.x + mvc - 异常处理
- 17. Spring MVC通用异常处理
- 18. Spring MVC返回JSONS和异常处理
- 19. Spring-mvc控制器和异常处理
- 20. Activiti Rest异常处理
- 21. 异常处理ASP.NET MVC Web API
- 22. WCF REST Full Service中的异常处理
- 23. 异常在Spring MVC处理 - 异常说明
- 24. 如何处理REST异常?
- 25. Spring MVC:管理异常
- 26. Spring MVC REST Json转换异常
- 27. Spring集成异常处理
- 28. Spring soap Webservice异常处理
- 29. Spring Web Flow异常处理
- 30. Spring JdbcTemplate batchUpdate处理异常
你能解释一下你在这里做什么吗?这是如何将控制权交给ControllerAdvice的其中一个类的? –