• 十一(二)、springMVC之异常处理ResponseStatusExceptionResource&DefaultHandlerExceptionResplver


    承接上文:十一(一)、springMVC之异常处理@ExceptionHandler注解

    ResponseStatusExceptionResource :

    更改自定义异常的状态码和异常原因

    目录结构

    自定义异常:SelfDefineException.java

     1 package handler;
     2 
     3 import org.springframework.http.HttpStatus;
     4 import org.springframework.web.bind.annotation.ResponseStatus;
     5 
     6 /**
     7  * 自定义 HTTP状态码和 理由 <br>
     8  * 使用时 可以把@ControllerAdvice 注释掉看效果
     9  * 
    10  * @author lixiuming
    11  *
    12  */
    13 @ResponseStatus(value = HttpStatus.FORBIDDEN, reason = "用户名密码不匹配")
    14 public class SelfDefineException extends RuntimeException {
    15 
    16     /**
    17      * 
    18      */
    19     private static final long serialVersionUID = -4891787694631373363L;
    20 
    21 }

    测试类EceptionController.java:

    自定义异常中的注解@ResponseStatus(value = HttpStatus.FORBIDDEN, reason = "用户名密码不匹配")也可以放在testResponseStatusExceptionResource方法上,也可更改状态码;

     1 package handler;
     2 
     3 import org.springframework.stereotype.Controller;
     4 import org.springframework.web.bind.annotation.RequestMapping;
     5 import org.springframework.web.bind.annotation.RequestParam;
     6 
     7 @RequestMapping("/emp")
     8 @Controller
     9 public class EceptionController {
    10 
    11     @RequestMapping("/testResponseStatusExceptionResource")
    12     public String testResponseStatusExceptionResource(@RequestParam("i") int i) {
    13         if (i == 13) {
    14             throw new SelfDefineException();
    15         }
    16         System.out.println("testResponseStatusExceptionResource");
    17         return "success";
    18     }
    19 }

    运行结果:

    访问http://localhost:8080/DataOperate/emp/testResponseStatusExceptionResource?i=13,跳转到error页面,且控制台打印错误消息;

    DefaultHandlerExceptionResplver :

    对一些特殊的异常进行了处理,比如:

    • NoSuchRequestHandlingMethodException
    • HttpReques tMethodNotSupportedException
    • HttpMediaTypeNotSuppo rtedException
    • HttpMediaTypeNotAcceptableException
  • 相关阅读:
    异步加载图片体验js任务操作
    模块管理引擎
    window+ electron
    app抓包获取数据,无法获取数据原因
    知乎加密参数xzse96详解
    WPF 可缩放ScrollView(方式二)
    WPF 可缩放ScrollView(方式一)
    GitLab版本管理与CI/CD自动化部署完整实践(windows+docker)
    C#7.2特性Span介绍
    You aren‘t using a compiler supported by lombok, so lombok will not work and has been disabled.
  • 原文地址:https://www.cnblogs.com/lixiuming521125/p/16027240.html
Copyright © 2020-2023  润新知