當(dāng)前位置:
首頁(yè) >
前端技术
> javascript
>内容正文
javascript
Springboot全局异常统一处理返回json
生活随笔
收集整理的這篇文章主要介紹了
Springboot全局异常统一处理返回json
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
- 1. 創(chuàng)建一個(gè)枚舉、封裝異常的錯(cuò)誤碼等信息
- 2. 創(chuàng)建一個(gè)自定義異常類繼承RuntimeException。
- 3. 自定義異常
- 4. 拋出異常
- 5. 測(cè)試
1. 創(chuàng)建一個(gè)枚舉、封裝異常的錯(cuò)誤碼等信息
package com.gblfy.distributedlimiter.enums;public enum ServiceErrCode {REQ_PARAM_ERR(10001, "您的手慢了,秒殺完畢!"),NOTFOUND_RESULT_ERR(10004, "服務(wù)器異常");private int code;private String msg;ServiceErrCode(int code, String msg) {this.code = code;this.msg = msg;}public int getCode() {return code;}public String getMsg() {return msg;} }2. 創(chuàng)建一個(gè)自定義異常類繼承RuntimeException。
package com.gblfy.distributedlimiter.exception;import com.gblfy.distributedlimiter.enums.ServiceErrCode;public class BaseServiceException extends RuntimeException {private int code;public BaseServiceException(String message, ServiceErrCode serviceErrCode) {//構(gòu)造器的第二個(gè)參數(shù)是上面創(chuàng)建的那個(gè)枚舉,之后把枚舉里面定義的code給了這個(gè)codesuper(message);this.code = serviceErrCode.getCode();}public int getCode() {return code;}@Overridepublic String getMessage() {return super.getMessage();} }3. 自定義異常
package com.gblfy.distributedlimiter.exception;import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ObjectNode; import com.gblfy.distributedlimiter.exception.BaseServiceException; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice;import javax.annotation.Resource;/*** 標(biāo)記這是一個(gè)異常處理類*/ @RestControllerAdvice public class CustomExtHandler {@Resourceprivate ObjectMapper jsonMapper;@ExceptionHandler(BaseServiceException.class)public ObjectNode baseServiceException(BaseServiceException e){int code = e.getCode();String msg = e.getMessage();return jsonMapper.createObjectNode().put("code",code).put("msg",msg);} }4. 拋出異常
package com.gblfy.distributedlimiter.controller;import com.gblfy.distributedlimiter.enums.ServiceErrCode; import com.gblfy.distributedlimiter.exception.BaseServiceException; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController;@RestController public class SentinelLimiterController {@GetMapping("/excepton")public void exceptonHandle() {//如果超過(guò)流控管理的就拋出異常throw new BaseServiceException(ServiceErrCode.REQ_PARAM_ERR.getMsg(), ServiceErrCode.REQ_PARAM_ERR);} }5. 測(cè)試
https://localhost:8080/excepton 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的Springboot全局异常统一处理返回json的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: centos7 /etc/profile
- 下一篇: SFTP多用户权限 linux环境 一站