运城市住房和城乡建设部网站,房地产网站建设与优化分析,h5在哪个网站中做,工程造价信息网官网登录入口文章目录 一、什么是自定义异常及全局异常处理#xff1f;二、使用步骤1.创建自定义异常BusinessException2.创建全局异常处理器GlobalExceptionHandler3.通用返回ResponseData4.使用 总结 一、什么是自定义异常及全局异常处理#xff1f;
在web服务中#xff0c;我们的接口… 文章目录 一、什么是自定义异常及全局异常处理二、使用步骤1.创建自定义异常BusinessException2.创建全局异常处理器GlobalExceptionHandler3.通用返回ResponseData4.使用 总结 一、什么是自定义异常及全局异常处理
在web服务中我们的接口通常需要有统一的返回格式而在程序开发过程中不可避免的是需要处理各种异常如果没有全局异常处理器通常我们需要把异常一层层往上抛出最后在controller层处理这样不可避免的需要写大量异常处理的重复代码如何避免这个问题我们可以通过自定义异常结合全局异常处理器实现统一处理。
二、使用步骤
1.创建自定义异常BusinessException
代码如下
package com.uhu.exception;import lombok.Data;/*** author xxx* description 自定义业务异常* create 2023-11-15 09:59**/
Data
public class BusinessException extends RuntimeException {private String message;public BusinessException(String message) {super(message);this.message message;}public BusinessException(String message, Throwable cause) {super(message, cause);this.message message;}
}
2.创建全局异常处理器GlobalExceptionHandler
代码如下
package com.uhu.exception.handler;import com.uhu.common.ResponseData;
import com.uhu.exception.BusinessException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;/*** author xxx* description 全局异常处理器* create 2023-11-15 10:10**/
Slf4j
RestControllerAdvice
public class GlobalExceptionHandler {ExceptionHandler(value Exception.class)public ResponseData exceptionHandler(Exception e) {log.error(GlobalExceptionHandler exceptionHandler error message: {}, e.getMessage(), e);return ResponseData.error(服务器内部错误请联系管理员);}/*** 自定义异常处理* param e* return*/ExceptionHandler(value BusinessException.class)public ResponseData businessExceptionHandler(BusinessException e) {log.error(GlobalExceptionHandler businessExceptionHandler error message: {}, e.getMessage(), e);return ResponseData.error(e.getMessage());}
}
3.通用返回ResponseData
代码如下
package com.uhu.common;import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;import java.io.Serializable;/*** author xxx* description* create 2023-10-01 16:52**/
ApiModel(响应参数)
Data
public class ResponseDataT implements Serializable {ApiModelProperty(响应码 0-success 500-error)private int code;ApiModelProperty(响应消息)private String message;ApiModelProperty(响应值)private T data;public ResponseData() {this.code 0;this.message success;}public static ResponseData ok(Object obj) {ResponseData responseData new ResponseData();responseData.setData(obj);return responseData;}public static ResponseData ok() {ResponseData responseData new ResponseData();responseData.setMessage(success);return responseData;}public static ResponseData error() {return error(500, error);}public static ResponseData error(String message) {return error(500, message);}public static ResponseData error(int code, String message) {ResponseData responseData new ResponseData();responseData.setCode(code);responseData.setMessage(message);return responseData;}
}
4.使用
throw new BusinessException(xxx);总结
以上就是今天要讲的内容本文仅仅简单介绍了SpringBoot实现自定义异常及全局异常处理的使用通过自定义异常及全局异常处理我们可以方便的处理异常。