博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
异常处理
阅读量:3918 次
发布时间:2019-05-23

本文共 1361 字,大约阅读时间需要 4 分钟。

重点 : 掌握异常处理的三种方式

异常处理的意义

     ·现实: 在项目的开发中,不可避免会遇到各种可预知的、不可预知的异常需要处理

     ·问题: 每个过程如果都单独处理异常,系统的代码耦合度高,工作量大且不好统一

     ·解决方案: 将所有类型的异常处理过程解耦出来,这样就实现了异常处理信息的统一处理和维护,大大降低了维护复杂度

 

异常处理的三种方式

     ·自定义异常处理器 HandlerExceptionResolver   (不是重点,用来理解)

     ·简单异常处理器 SimpleMappingExceptionResolver   (用的非常普遍)

     ·注释实现异常处理 @ExceptionHandler   (太灵活)

 

自定义异常类

  1. 继承RunningTimeException
  2. 提供自定义异常类构造方法
/** * 自定义业务异常类 * @author Administrator * */public class BusinessException extends RuntimeException {	public BusinessException() {		super();	}	public BusinessException(String message, Throwable cause,			boolean enableSuppression, boolean writableStackTrace) {		super(message, cause, enableSuppression, writableStackTrace);	}	public BusinessException(String message, Throwable cause) {		super(message, cause);	}	public BusinessException(String message) {		super(message);	}	public BusinessException(Throwable cause) {		super(cause);	}}

 

自定义异常处理器

  1. 实现异常处理器接口 HandlerExceptionResolver
  2. 实现异常处理方法 resolveException
  3. 配置文件中添加自定义异常处理机制

           一、实现异常处理器接口创建自定义异常处理器:

           二、在SpringMVC的配置文件中添加配置:

 

简单映射异常处理器

  配置:    SimpleMappingExceptionResolver

 

注解实现异常处理器

  ·使用注解: @ExceptionHandler 标注异常处理方法

 

 

未捕获异常的处理

·未捕获异常如何处理

       如果类型为非强制捕获异常,而代码中没有针对这些意料之外的异常进行处理,那么会产生404,500等服务器内错误页面,这些会带来非常差的用户体验。

      ·为了解决这一问题,不同的应用服务器提供了不同的处理方式:tomcat可以通过配置web.xml配置文件,抓取错误码并返回指定的错误页面

 

三种处理的比较:

异常处理方式        优点     缺点

自定义异常处理器 在代码层进行逻辑处理,理解原理    代码量大

简单映射异常处理器 可扩展性强(项目中较为常用) 配置繁琐

注解式异常处理 配置灵活 只能标注方法

转载地址:http://idtrn.baihongyu.com/

你可能感兴趣的文章
IdentityServer4 之Client Credentials走起来
查看>>
腾讯公测云开发低码!实战评测
查看>>
.NET 5 开源工作流框架elsa技术研究
查看>>
C#-WinForm跨线程修改UI界面
查看>>
Amazing 2020
查看>>
代码改变世界,也改变了我
查看>>
【Git】Git-常用命令备忘录(一)
查看>>
2021,未来可期
查看>>
阿星Plus:基于abp vNext开源一个博客网站
查看>>
写给自己,2020的年终总结
查看>>
使用 ML.NET 识别乐高颜色块
查看>>
Flash 生命终止,HTML5能否完美替代?
查看>>
ML.NET生成器带来了许多错误修复和增强功能以及新功能
查看>>
微信适配国产操作系统:原生支持 Linux
查看>>
我的2020年终总结:新的角色,新的开始
查看>>
“开源、共享、创新” 2020 中国.NET开发者大会小结
查看>>
C# 9 新特性 —— 增强的模式匹配
查看>>
. NET5一出,. NET岗面试普遍喊难,真相是…
查看>>
强烈推荐:SiteServer CMS开源免费的企业级CMS系统!
查看>>
如何在 ASP.NET Core 中使用 NLog 的高级特性
查看>>