黄石有哪些做视觉网站的公司,网站 app微信三合一,黑色赚钱的网站,手机微信网站怎么做的好在 Spring Boot 项目开发中#xff0c;异常处理是一个非常重要的环节。良好的异常处理不仅能提高应用的健壮性#xff0c;还能提升用户体验。本文将介绍如何在 Spring Boot 项目中实现统一异常处理。
统一异常处理有以下几个优点#xff1a;
提高代码可维护性#xff1a;…在 Spring Boot 项目开发中异常处理是一个非常重要的环节。良好的异常处理不仅能提高应用的健壮性还能提升用户体验。本文将介绍如何在 Spring Boot 项目中实现统一异常处理。
统一异常处理有以下几个优点
提高代码可维护性异常处理逻辑集中管理减少了代码的冗余和分散。提升用户体验用户能看到一致且友好的错误信息而不是杂乱的堆栈跟踪。安全性避免将敏感的错误信息暴露给用户。
使用 ControllerAdvice 和 ExceptionHandler 实现统一异常处理
Spring 提供了 ControllerAdvice 注解用于集中处理控制器层的全局异常。ExceptionHandler 注解用于定义具体的异常处理方法。下面是一个基本的示例
1. 创建异常处理类
首先我们创建一些自定义异常处理类以便可以捕捉到controller中出现的异常防止直接报给前端500的错误码 ControllerAdvice //添加完此注解后此类随着springboot项目的启动而启动并且会监控controller的异常.监听项目中所有的异常
ResponseBody
public class MyExceptionAdvice {//这里的一场都是意外异常并不是业务异常业务异常后端controller会处理返回给前端.业务异常会和前端沟通好已规定的状态码返回。ExceptionHandler(NullPointerException.class)public HashMapString,Object doNullPointerException(NullPointerException e){HashMapString, Object res new HashMap();res.put(code,-1);res.put(msg,空指针异常e.getMessage());res.put(data,null);return res;}// 默认的异常处理当有有异常出现的时候会先匹配子类的异常当所有的异常都没有匹配的时候就会走这一条默认的一场路线业务。ExceptionHandler(Exception.class)public HashMapString,Object doException(Exception e){HashMapString, Object res new HashMap();res.put(code,-1);res.put(msg,异常e.getMessage());res.put(data,null);return res;}
}使用ExceptionHandler 注解的时候需要传入异常类。使用注解的方法名和返回值都可以自定义但是传入的变量要和注解中传入的异常类保持一致。
我们也不可能将所有可能出现的异常都列举出来那该怎么办呢我们只需要针对所有异常类的父类Exception进行异常处理即可 2. 触发异常观察结果
controller代码
我们现在访问 http://127.0.0.1:8080/user/login 确实通过AOP的思想捕获到项目中出现的异常了并且代码完全没有侵入到项目的业务代码中。
如果我们不进行这些异常处理会是怎么样的结果我们注解去掉注解让异常处理失效再次访问login观察结果
这样的结果并不是优秀的项目该有的显得和挫啊。 总结 统⼀异常处理使⽤的是 ControllerAdvice ExceptionHandler 来实现的ControllerAdvice 表示控制器通知类ExceptionHandler 是异常处理器两个结合表示当出现异常的时候执⾏某个通知 也就是执⾏某个⽅法事件。