SSM整合自定义异常处理器

来源:互联网 发布:淘宝天下 邀请 小二 编辑:程序博客网 时间:2024/06/02 06:40

异常分为:预期异常和Runtime异常

 

 

异常处理的思路:

    springmvc提供全局的异常处理器(一个系统只有一个异常处理器)进行统一的异常处理

   在程序当中遇到异常时  我们手工抛出throws Exception

 

    dao抛给service   service抛给controller   controller抛给前端控制器 前端控制器调用全局异常处理器

 

1.定义一个异常类

   package cn.elec.exception;
/**
 * 自定义异常类
 * @author 
 *
 */
public class NormalException extends Exception {

/**

*/
private static final long serialVersionUID = 7144771828212718116L;
//异常信息写到message里边
public String message;

public NormalException(String message){
super(message);
this.message=message;
}


public String getMessage() {
return message;
}


public void setMessage(String message) {
this.message = message;
}

}


 

2.定义全局异常处理器

    系统遇到异常  我们在程序当中手工抛出

 

处理思路:解析出当前的异常类型 

如果该异常类型是系统自定义异常 直接取出异常信息在错误页面当中展现

 如果不是自定义异常 那么需要构造一个系统自定义的异常类 信息为:未知错误

 

SpringMVC提供了一个HandlerExceptionResolver接口

 

3.springmvc的配置文件当中配置全部异常处理器

   

<!-- 配置全局异常处理器-->

        <beanclass="cn.elec.exception.AllClassExceptionResolver"></bean>

只要AllClassExceptionResolver实现了HandlerExceptionResolver接口那么srpingmvc就会将其当成一个异常处理器

 

应该在哪一层抛出异常:

    如果与业务功能相关的异常 那么在service层抛出

    如果跟业务没关系的异常在controller当中抛出 如:判断参数是否为空 不能用乱字符等等

    dao层一般不会抛出异常

 

具体的异常处理可以参见:

http://blog.csdn.net/ufo2910628/article/details/40399539