异常处理器
- SpringMVC提供全局异常处理器进行统一的异常处理,一个系统只能有一个异常处理器。
- 系统的dao、service、controller层出现异常的时候都throws Exception向上抛,最后由SpringMVC前端控制器交由异常处理器进行异常处理(对异常进行包装处理)。如下如所示:

为什么需要全局异常处理器
- 如上图所示,如果没有全局异常处理器,不管是dao层、Service层还是Controller层出现异常时,会直接将异常信息返回到客户端,而这些异常信息不经过包装,可能会包含项目的包名、SQL查询语句、数据库的IP信息等,这将会造成严重的安全隐患。恶意用户可以通过发送不正确的查询语句时,从异常信息中提取可以危害到服务端安全的信息,造成服务端出现安全威胁。
- 如下是我模拟的一个服务端异常

当用户访问服务端经过这个语句时,会出现除数为0的异常,当不设置全局异常处理器时,客户端得到的异常信息如下图所示:

本文介绍了SpringMVC中全局异常处理器的重要性,它用于统一处理系统各层抛出的异常,避免敏感信息泄露。通过示例展示了未使用全局处理器时,异常信息可能暴露服务端细节,构成安全隐患。并详细说明了如何实现一个异常处理器,包括实现HandlerExceptionResolver接口和重写resolveException方法,以及异常处理后的效果,即返回简洁的异常信息给客户端。
最低0.47元/天 解锁文章
1311

被折叠的 条评论
为什么被折叠?



