• SpringMVC中异常处理详解


    单个控制器异常处理

    1. // 添加@ExceptionHandler,表示该方法是处理异常的方法,属性为处理的异常类
    2. @ExceptionHandler({java.lang.NullPointerException.class,java.lang.ArithmeticException.class})
    3. public String exceptionHandle1(Exception ex, Model model){
    4. // 向模型中添加异常对象
    5. model.addAttribute("msg",ex);
    6. // 跳转到异常页面
    7. return "error";
    8. }
    9. // 方法一不能处理的异常交给方法二处理
    10. @ExceptionHandler(java.lang.Exception.class)
    11. public String exceptionHandle2(Exception ex, Model model){
    12. model.addAttribute("msg",ex);
    13. return "error2";
    14. }

    全局异常处理

    1. // 全局异常处理器类,需要添加@ControllerAdvice
    2. @ControllerAdvice
    3. public class GlobalExceptionHandler {
    4. /**
    5. * 异常处理方法
    6. *
    7. * @param ex 异常对象
    8. * @param model 模型对象
    9. * @return
    10. */
    11. // 添加@ExceptionHandler,表示该方法是处理异常的方法,属性为处理的异常类
    12. @ExceptionHandler({java.lang.NullPointerException.class, java.lang.ArithmeticException.class})
    13. public String exceptionHandle1(Exception ex, Model model) {
    14. // 向模型中添加异常对象
    15. model.addAttribute("msg", ex);
    16. // 跳转到异常页面
    17. return "error";
    18. }
    19. // 方法一不能处理的异常交给方法二处理
    20. @ExceptionHandler(java.lang.Exception.class)
    21. public String exceptionHandle2(Exception ex, Model model) {
    22. model.addAttribute("msg", ex);
    23. return "error2";
    24. }
    25. }

    自定义异常处理

    1. // 自定义异常处理器实现HandlerExceptionResolver接口,并放入Spring容器中
    2. @Component
    3. public class MyExceptionHandler implements HandlerExceptionResolver {
    4. @Override
    5. public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {
    6. ModelAndView modelAndView = new ModelAndView();
    7. if (e instanceof NullPointerException) {
    8. modelAndView.setViewName("error");
    9. } else {
    10. modelAndView.setViewName("error2");
    11. }
    12. modelAndView.addObject("msg", e);
    13. return modelAndView;
    14. }
    15. }

  • 相关阅读:
    RS232协议、RS485协议
    使用python编程数学建模-数据模块理论数据相似性常用基础指标(课程3)
    速溶颗粒:实验中的好伙伴
    wepack打包生产环境使用http-proxy-middleware做api代理转发的方法
    Docker 镜像安全
    【论文笔记 | 异步联邦】 FedBuff
    HBase-集群部署
    【C之switch】使用及技巧
    如何判断域名的潜力和价值?
    iphone无线调试(通过wifi无线来调试真机)
  • 原文地址:https://blog.csdn.net/m0_63040701/article/details/133689216