异常处理的过程

 

系统中的异常包括两类: '预期异常'和'运行时异常',前者是通过捕获异常从而获取异常信息,后者是通过规范代码开发、测试等手段避免异常发生

系统的Dao、Service、Controller层出现的异常,我们只需要throws Exception向上抛出即可,最后由SpringMVC前端控制器的异常处理器来处理 本质: 我们写的时候出现异常的话,抛出即可,最后在SpringMVC框架的前端控制器统一处理异常

 

模拟异常如下(->表示向谁请求,<-表示向谁抛异常,<<表示已经解决异常)

客户端 -> 前端控制器 -> Controller层 -> Service层 -> Dao层 客户端 << 前端控制器 <- Controller层 <- Service层 <- Dao层

 

我们发现,异常是在前端控制器这里被处理的,前端控制器是通过'HandlerExceptionResolver'组件(也叫异常处理器)来解决异常

 

异常处理的方式

 

1、使用Spring MVC提供的简单异常处理器SimpleMappingExceptionResolver

2、实现Spring的异常处理接口HandlerExceptionResolver自定义自己的异常处理器

 

 

异常处理的方式1 - 简单异常处理器

 

SpringMVC已经定义好了该'类型转换器',我们在使用时可以根据项目情况进行相应异常与视图的映射配置。具体操作:

 

第一步: 在src/main/java/com.huanf目录下新建3个文件夹,分别为controller、exception、service 在controller文件夹里面新建DemoController类,里面写入如下

 

第二步: 在exception文件夹里面新建MyException类,里面写入如下

 

第三步: 在service文件夹里面新建DemoService接口,里面写入如下

 

第四步: 在service文件夹里面写入如下

 

第五步: 在spring-mvc.xml里面添加如下:

 

第六步: 在applicationContext.xml里面写入如下:

 

第七步: 在web.xml里面写入如下

 

 

异常处理的方式2 - 自定义异常处理器

 

自定义异常处理步骤

1、建异常处理器类实现HandlerExceptionResolver

2、配置异常处理器

3、编写异常页面

4、测试异常跳转

 

具体操作:

 

第一步: 在com.huanf目录下新建文件夹resolver,在resolver里面新建MyExceptionResolver类,在MyExceptionResolver类里面写入如下

 

第二步: 在webapp下新建一个页面,为error_MyExceptionResolver.jsp,里面自己写入一些内容

第三步: 在spring-mvc.xml里面添加如下