zoukankan      html  css  js  c++  java
  • Spring 异常处理

    Spring 中的异常处理可以有如下几种处理方式:

    1、简单的可以通过抛出特定异常,Spring 会自动转换为对应的 HTTP 状态码,或者自定义异常,添加对应状态码注解,如

    @ResponseStatus(value=HttpStatus.NOT_FOUND, reason="Spittle Not Found")
    public class SpittleNotFoundException extends RuntimeException {
    }

    2、在同一个文件中编写异常处理器,单独写一个方法,添加 @ExceptionHandler(XXXException.class) 注解,如:

    @ExceptionHandler(DuplicateSpittleException.class)
    public String handlerDuplicateSpittle() {
        return "error/duplicate";
    }

    3、单独编写一个统一异常处理类,如

    @ControllerAdvice
    public class AppWideExceptionHandler {
        @ExceptionHandler(DuplicateSpittleException.class)
        public String duplicateSpittleHandler() {
            return "error/duplicate";
        }  
    }

    4、对于 Rest 等方式中的异常,可以在异常处理方法上面添加 @ResponseStatus、@ResponseBody 注解,如:

    @ExceptionHandler(DuplicateSpittleException.class)
    @ResponseStatus(HttpStatus.NOT_FOUND)
    @ResponseBody
    public String error(DuplicateSpittleException e) {
        return e.getMessage();
    }

    5、更复杂的情况可以通过返回 ResponseEntity<T> 解决

    平时开发中,我们可以不通过标志位来判断执行结果,而是通过抛出异常,之后在 Controller 层统一捕获处理。

  • 相关阅读:
    Python 模块管理
    Python 练习: 计算器
    Linux 系统性能分析工具 sar
    Python 正则介绍
    Python ConfigParser 模块
    Python logging 模块
    Python hashlib 模块
    Python sys 模块
    09 下拉框 数据验证
    08 条件排序
  • 原文地址:https://www.cnblogs.com/zawier/p/7455609.html
Copyright © 2011-2022 走看看