哈喽,大家好,我是指北君。
10年积累的成都网站建设、网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站策划后付款的网站建设流程,更有清镇免费网站建设让你可以放心的选择与我们合作。
今天和大家分享一下异常处理和错误码管理。
在业务逻辑中,通常使用两种方式处理异常:
选择哪种需要根据场景而定,不管如何选择,只要团队达成共识,统一规范就可以。
下面介绍一下我使用的处理异常的方式。
创建一个业务异常基类 BaseException extends RuntimeException ,为其添加两个属性:code 和 message ,并添加一些常用的构造方法。
其中, code 的作用是储存错误码,在返回前台时将错误码返回给用户。
抛出异常:
上面的自定义异常看起来很简单,但是不够优雅和简单。怎么将错误码和错误信息管理起来,是我们接下来要解决的问题。
我使用了 Enum ,先创建一个接口,其中包含两个方法:
下面创建一个枚举类,实现上面的接口:
观察上面的错误码枚举类,我们发现,枚举值为字母+错误码,属性 msg 为错误信息。
这样将错误码和异常信息统一管理起来之后,抛出异常的代码就可优化为:
然而这样依然不够优雅,代码量比之前还要长。要是能够只传枚举值一个参数就好了,那么我们继续优化。
创建一个异常类 BusinessException extends BaseException (创建一个子类,用来接收枚举值),如下:
这样我们就可以优雅的抛出 BusinessException 了:
如果想要保留原异常信息,还可以使用:
以上就是对异常处理的封装,使用时,只需要在每个业务模块中新建一个异常枚举类,用来统一管理异常;需要时,在代码中抛出 BusinessException 即可。
最后,我们再使用 @ControllerAdvice 和 @ExceptionHandler 注解做一下统一异常处理,它的作用是:
代码如下:
文章名称:异常处理实践-抛异常+错误码
分享链接:http://www.mswzjz.cn/qtweb/news25/104525.html
攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能