Spring 3.2新增**@ControllerAdvice** 注解用于定義
- @ExceptionHandler
- @InitBinder
- @ModelAttribute\
并應用到所有@RequestMapping。
BasicErrorController
SpringBoot内置了一個BasicErrorController對異常進行統一的處理,當在頁面發生異常的時候會自動把請求轉到/error(Spring Boot提供的一個預設的映射) ,可以自定義頁面内容,隻需在classpath路徑下建立error頁面即可。當然我們也可以自定義error頁面的路徑
如:
server.error.path=/custom/error
BasicErrorController提供兩種傳回錯誤一種是頁面傳回、當你是頁面請求的時候就會傳回頁面,另外一種是json請求的時候就會傳回json錯誤。
定義全局異常處理類:并用@ControllerAdvice注解
- 傳回視圖,建立方法defaultErrorHandler 用@ExceptionHandler注解
- 傳回JSON,建立方法 用jsonErrorHandler 用@ExceptionHandler和@ResponseBody(必須)注解
自定義異常類
繼承Exception(或RuntimeException)
頁面
如果全部異常處理傳回json,那麼可以使用 @RestControllerAdvice 代替 @ControllerAdvice ,這樣在方法上就可以不需要添加 @ResponseBody。