• SpringMVC---统一处理异常


    统一处理异常

    Spring MVC框架在接收到请求后,会自动调用处理请求的方法,如果调用的控制器中方法抛出异常,Spring MVC会捕获到此异常对象,
    并尝试调用统一处理异常的机制,如果没有统一处理异常的机制,则会响应500错误。

    关于统一处理异常,需要自定义类,在类上添加@ControllerAdvice注解,添加此注解的类中的注解方法将可以作用于每一次处理请求的过程。

    然后,在类中添加处理异常的方法,关于此方法:

    • 访问权限:应该使用public
    • 返回值类型:参考控制器中处理请求的方法
      • 假设,需要响应某字符串到客户端,则使用String作为返回值类型,并结合@ResponseBody注解一起使用,或者,使用@RestControllerAdvice替代@ControllerAdvice,则此类中所有方法向客户端响应时,都是响应正文的
    • 方法名称:自定义
    • 参数列表:必须至少包含1个异常类型,此参数就是Spring MVC框架调用控制器的方法后捕获的异常,并且,可以按需添加HttpServletRequestHttpServletResponse等少量指定类型的参数,不可以添加其它参数
    • 注解:必须添加@ExceptionHandler注解
      在以上统一处理异常的类中,统一处理异常的方法可以有多个(处理的异常必须不同,但允许存在继承关系),通常,
      建议在此类中添加一个能够处理任何异常的方法,避免某些异常未被处理导致响应500错误(用户不明确错误的原因,可能继续尝试错误的操作):
    @ExceptionHandler
    public String handleThrowable(Throwable e) {
        log.error("统一处理未明确处理的异常【{}】,将向客户端响应:{}", e.getClass().getName(), e.getMessage());
        return "服务器忙,请联系管理员!";
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
  • 相关阅读:
    如何在 initial / task 等 begin_end 中等待某一个信号
    一文学会TextureID渲染到Surface
    ChatGPT研究报告:AIGC带来新一轮范式转移
    【FLASH存储器系列十二】Nand Flash芯片使用指导之二
    AI作画飞入寻常百姓家——stable diffusion初体验
    ES几个比较重要的DSL语句
    吴恩达机器学习-可选实验室:逻辑回归(Logistic Regression))
    A. Sum
    基于 Servlet 的博客系统
    【HMS Core】定位服务无法获取街道信息问题
  • 原文地址:https://blog.csdn.net/qq_45520124/article/details/126064859