Java 全局异常处理

本文探讨了在JavaWeb开发中如何实现全局异常处理,包括需求背景、异常处理分析,以及具体的实现步骤。通过创建自定义异常和实现HandlerExceptionResolver接口,可以简化并统一项目中的异常处理方式。在任何需要的地方,可以直接抛出自定义异常,然后由全局异常处理器进行捕获和处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求:

在项目开发中,经常会遇到一些参数验证,当然,在controller层中可以使用java扩展包中的@Valid进行验证,但是在一些比较复杂的逻辑中,或者和第三方交互中产生的值需要校验时,通过创建返回创建的实体bean太过繁琐,用map封装也太杂乱,故自己打算创建一个Exception,既可以进行自己逻辑的判断,又可以对不友好的提示,进行修饰。

恩,网上看的一个比较合理的需求解释感觉很符合情况的。。。。。

JavaWeb应用开发中产生的异常都应该继承Exception(属于checkedexcpetion类型)。而且JavaWeb应用一般采用三层或多层架构,程序员没有必要在各个层中对错误和异常进行处理,应用中的每一层在包装并传递异常时要过滤掉Runtime-Exception,从责任这个角度看uncheckedexception是程序应该负担的责任;checkedexception是具体应用负担的责任。无论如何我们都不应该将uncheckedexception这样的异常暴露给客户的,因为他们没有解决这个问题的责任,应该将这种异常封装成checkedexception类型的异常,由具体的应用程序来负担这个责任。

 

分析:

在目前的JavaWeb开发中,开发基础是Spring,普遍的开发框架就是基于SpringMvc的,比如说springMVC+mybatis/+Hibernate,甚至现在比较流行的springBoot、SpringCloud都是基于SpringMVC进行开发的。 当然,一些老项目还在用ssh、SSM,但是新项目开发基本不做选择了。

而在SpringMVC中,处理异常信息的类都实现了HandlerExceptionResolver接口。

HandlerExceptionResolver 可以说是SpringMVc中处理异常的最最基本的接口,想处理异常最简便的方法还是创建一个属于自己的Resolver 实现其对应的方法就可以了。

在一个项目中,可以有多个处理异常的类,所以在处理异常的时候需要进行优先级的判断,这个需要实现Order的接口,根据其order值来进行优先级的判断,值越小优

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值