springmvc异常统一处理
springmvc异常统一处理
newworld2010 发表于1年前
springmvc异常统一处理
  • 发表于 1年前
  • 阅读 29
  • 收藏 3
  • 点赞 0
  • 评论 0

腾讯云 十分钟定制你的第一个小程序>>>   

所有错误统一处理,不论dao层,service层,controller层都层层向向上抛, 具体实现如下

1. spring提供的类SimpleMappingExceptionResolver

2. spring接口HandlerExceptionResolver

3. spring注解ExceptionHandler

具体实现例子

1.1   继承类SimpleMappingExceptionResolver 并初始化相关参数

1.2   在applicationContext.xml 上SimpleMappingExceptionResolver配置对应的bean和相关参数

2.1   实现HandlerExceptionResolver接口

@Component

public class MyExceptionHandler implements HandlerExceptionResolver {  
    public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler,  Exception ex) {  
        Map<String, Object> model = new HashMap<String, Object>();  
        model.put("ex", ex);   
        if(ex instanceof BusinessException) {  
            return new ModelAndView("error-business", model);  
        }else if(ex instanceof ParameterException) {  
            return new ModelAndView("error-parameter", model);  
        } else {  
            return new ModelAndView("error", model);  
        }  
    }  
}            

3.1    自定义一个基类的业务上加入@ExceptionHandler,内容和2.1相同,其他Controller继承此基类
public class BaseController {
    @ExceptionHandler  
    public String exp(HttpServletRequest request, Exception ex) {  
        request.setAttribute("ex", ex);  
        if(ex instanceof BusinessException) {  
            return "error-business";  
        }else if(ex instanceof ParameterException) {  
            return "error-parameter";  
        } else {  
            return "error";  
        }  
    }  
}

public class OtherController extends BaseController

 

 

 

共有 人打赏支持
粉丝 5
博文 33
码字总数 2831
×
newworld2010
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: