莆田网站建设哪里便宜,成都哪里做网站好,免费ai智能写作一键生成,wordpress接入微信支付1.全局异常处理介绍
1.1 简介
全局异常处理器即把错误异常统一处理的方法#xff0c;可以在多个地方使用#xff0c;而不需要为每个地方编写单独的处理逻辑。它可以帮助开发人员更好地管理异常#xff0c;并提供一致的错误处理方式。
1.2 优点 1.全局异常处理可以提高代码…1.全局异常处理介绍
1.1 简介
全局异常处理器即把错误异常统一处理的方法可以在多个地方使用而不需要为每个地方编写单独的处理逻辑。它可以帮助开发人员更好地管理异常并提供一致的错误处理方式。
1.2 优点 1.全局异常处理可以提高代码的重用性和可维护性 2.避免重复编写异常处理代码减少出错的可能性提高程序的稳定性。 3.配置简单将代码复制到项目中就可以使用 2.全局异常处理的实现方式
自己定义一个类在类上添加**ControllerAdvice** 注解在方法上添加**ExceptionHandler**注解就完成了一个全局异常处理的搭建在一个类中可以写多个ExceptionHandler,对于不同类型的ExceptionHandler可以拦截不同类型的exception然后再最后面设置一个拦截Exception.class的拦截器用于拦截掉所有的方法如果全局拦截中有我们不想拦截的异常类只需要捕获以后再从新抛出即可示。 ControllerAdvice设定拦截规则ExceptionHandler设定拦截的异常类型 3.全局异常处理代码实现
3.1 定义一个统一返回类
Getter
Setter
AllArgsConstructor
public class Results {// 返回状态标识private Integer code;// 返回数据private Object data;// 返回成功或失败的消息private String msg;// 成功返回数据public static Results success(Object data) {return success(200, data, );}// 成功返回数据、消息public static Results success(Object data, String msg) {return success(200, data, msg);}// 成功返回自定义状态码、数据、消息public static Results success(Integer code, Object data, String msg) {return new Results(code, data, msg);}// 失败只返回消息public static Results fail(String msg) {return fail(-1, null, msg);}// 失败返回数据、消息public static Results fail(Object data, String msg) {return fail(-1, data, msg);}// 失败返回自定义状态码、数据、消息public static Results fail(Integer code, Object data, String msg) {return new Results(code, data, msg);}
}3.2 定义全局异常处理
ControllerAdvice(annotations {RestController.class, Controller.class})
ResponseBody
Slf4j
public class GlobalExceptionHandler {ExceptionHandler(value ArithmeticException.class)public Results exceptionHandler(ArithmeticException exception){String ExMsg exception.getMessage();log.error(ExMsg);if (ExMsg.contains(zero)){return Results.fail(ExMsg);}return Results.fail(未知异常);}ExceptionHandler(Exception.class)public Results exceptionHandler1(Exception exception){return Results.fail(处理所有异常发生的错误是:exception.getMessage());}
}3.3 制造异常
Controller
public class BasicController {// http://127.0.0.1:8080/hello?namelisiRequestMapping(/hello)ResponseBodypublic String hello(RequestParam(name name, defaultValue unknown user) String name) {int m 10;m m/0;return Hello name;}}访问网址http://127.0.0.1:8080/hello?namelisi
页面结果显示: 4.源代码码云地址
全局异常处理仓库地址
更多内容请查看码云仓库