我正在使用@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的其中一個類的? –