首页 > 编程语言 > 详细

spring mvc异常统一处理(ControllerAdvice注解)

时间:2017-09-13 14:40:27      阅读:299      评论:0      收藏:0      [点我收藏+]
@ControllerAdvice  
public class GlobalExceptionHandler {  
      
    private final static AsJEELogger LOG = AsJEELoggerFactory.getLogger(GlobalExceptionHandler.class);  
      
    private final static String EXPTION_MSG_KEY = "message";  
      
    @ExceptionHandler(BusinessException.class)  
    @ResponseBody  
    public void handleBizExp(HttpServletRequest request, Exception ex){  
        LOG.info("Business exception handler  " + ex.getMessage() );  
        request.getSession(true).setAttribute(EXPTION_MSG_KEY, ex.getMessage());  
    }  
      
    @ExceptionHandler(SQLException.class)  
    public ModelAndView handSql(Exception ex){  
        LOG.info("SQL Exception " + ex.getMessage());  
        ModelAndView mv = new ModelAndView();  
        mv.addObject("message", ex.getMessage());  
        mv.setViewName("sql_error");  
        return mv;  
    }  
  
}  

public class BusinessException extends Exception{  
  
    private static final long serialVersionUID = 1L;  
      
    //业务类型  
    private String bizType;  
    //业务代码  
    private int bizCode;  
    //错误信息  
    private String message;  
      
    public BusinessException(String bizType, int bizCode, String message){  
        super(message);  
        this.bizType = bizType;  
        this.bizCode = bizCode;  
        this.message = message;  
    }  
  
    public BusinessException(String message){  
        super(message);  
        this.bizType = "";  
        this.bizCode = -1;  
        this.message = message;  
    }  
  
    public BusinessException(String bizType, String message){  
        super(message);  
        this.bizType = bizType;  
        this.bizCode = -1;  
        this.message = message;  
    }  
      
    public BusinessException(int bizCode, String message){  
        super(message);  
        this.bizType = "";  
        this.bizCode = bizCode;  
        this.message = message;  
    }  
  
    public String getBizType() {  
        return bizType;  
    }  
  
    public void setBizType(String bizType) {  
        this.bizType = bizType;  
    }  
  
    public int getBizCode() {  
        return bizCode;  
    }  
  
    public void setBizCode(int bizCode) {  
        this.bizCode = bizCode;  
    }  
  
    public String getMessage() {  
        return message;  
    }  
  
    public void setMessage(String message) {  
        this.message = message;  
    }  
  
}  


@Controller  
@RequestMapping("/security/user")  
public class UserController  extends AbstractController<User>{  
  
    @Resource  
    private UserService userService;  
    @Resource  
    private ServiceFacade serviceFacade;  
  
    @RequestMapping("login")  
    public String login() {   
        return "login";  
    }  
      
    @RequestMapping("login2")  
    public String login2() throws Exception {  
        throw new SQLException("出错鸟。。。。。。。。。");  
    }     
      
    @RequestMapping("login3")  
    public String login3() throws Exception {   
        throw new BusinessException("业务执行异常");  
    }  
      
    //此方法抛出的异常不是由GlobalExceptionHandler处理  
    //而是在catch块处理  
    @RequestMapping("login4")  
    public String login4() {   
        try {  
            throw new BusinessException("业务执行异常");  
        } catch (BusinessException e) {  
            e.printStackTrace();  
        }  
        return "login";  
    }  
      
}  

 

spring mvc异常统一处理(ControllerAdvice注解)

原文:http://www.cnblogs.com/raphael5200/p/7514693.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!