Spring教程之異常捕獲方式
概述
在Spring中,封裝了全局異常捕獲方法,方便我們處理和管理異常,捕獲異??梢越鉀Q以下業(yè)務(wù)場(chǎng)景:
- 友好返回給用戶提示。
- 記錄日志方便排查問(wèn)題
- 方便管理異常等
以下程序模擬在Controller中出現(xiàn)異常:
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 全局異常捕獲測(cè)試
* @author terry
* @version 1.0
* @date 2022/1/6 14:29
*/
@RestController
@RequestMapping("/gloab")
public class GloabExceptionController {
@RequestMapping("/test1")
public String test1(){
// 模擬異常
int i = 1/0;
return "success";
}
}打印輸出
{
"timestamp": "2022-01-06T06:51:26.538+00:00",
"status": 500,
"error": "Internal Server Error",
"message": "",
"path": "/gloab/test1"
}
出現(xiàn)問(wèn)題:
當(dāng)發(fā)送異常之后,后續(xù)的代碼都不執(zhí)行了,而且返回的參數(shù)也不是我們需要的。
@RestControllerAdvice注解
@RestControllerAdvice和@ControllerAdvice都是全局捕獲異常配置類,@RestControllerAdvice更適用于返回JSON數(shù)據(jù),@ControllerAdvice返回JSON需要方法額外添加@ResponseBody。
@RestControllerAdvice
class GloabExceptionHandler {
@ExceptionHandler(value = Exception.class)
public String exceptionHandler(Exception e){
System.out.println("ERROR: " + e.getMessage());
return "error";
}
}打印輸出
error
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Mybatis-Plus主鍵插入null值報(bào)錯(cuò)問(wèn)題及解決
這篇文章主要介紹了Mybatis-Plus主鍵插入null值報(bào)錯(cuò)問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
Alibaba?Nacos配置中心動(dòng)態(tài)感知原理示例解析
這篇文章主要介紹了Alibaba?Nacos配置中心動(dòng)態(tài)感知原理示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
SpringBoot如何整合Springsecurity實(shí)現(xiàn)數(shù)據(jù)庫(kù)登錄及權(quán)限控制
這篇文章主要給大家介紹了關(guān)于SpringBoot如何整合Springsecurity實(shí)現(xiàn)數(shù)據(jù)庫(kù)登錄及權(quán)限控制的相關(guān)資料,文中通過(guò)圖文以及實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-01-01

