熟練使用SpringBoot--使用ControllerAdvice或RestControllerAdvice處理異常

前言

在Spring 3.2中,新增了@ControllerAdvice、@RestControllerAdvice 註解,可以用於定義@ExceptionHandler、@InitBinder、@ModelAttribute,並應用到所有@RequestMapping、@PostMapping, @GetMapping註解中。

註解使用

定義一個全局的異常攔截器
在這裏插入圖片描述
注意:

@ExceptionHandler註解傳入的參數可以一個數組,使用該註解時,傳入的參數不能相同,就是不能兩個@ExceptionHandler去處理一個異常,傳入的參數相同,初始化ExceptionHandler失敗

對於@ControllerAdvice註解,看一下源碼在這裏插入圖片描述
我們可以傳遞一個basePackages,聲明的類(可以是數組)

異常處理

編寫自定義異常處理類
在這裏插入圖片描述

Spring對於RuntimeException類的異常纔會進行事務回滾,所以一般自定義異常都繼承該異常類

使用

在這裏插入圖片描述
在這裏插入圖片描述

說明

我們也可以使用@RestControllerAdvice替代@ControllerAdvice,這樣方法上就可以不用添加@RequestBody,@RestControllerAdvice在註解上已經添加了@RequestBody

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章