Spring Boot 自定义异常处理

    xiaoxiao2023-10-27  170

    文章目录

    自定义异常类,继承RuntimeException全局异常处理响应结果枚举类测试自定义异常处理

    自定义异常类,继承RuntimeException

    /** * 自定制异常类 * * @author MoCha * @date 2019/5/25 */ @Getter public class CustomException extends RuntimeException { private int code; private String message; public CustomException(int code, String message) { this.code = code; this.message = message; } public CustomException(ResultStatusEnum resultStatusEnum) { this.code = resultStatusEnum.getCode(); this.message = resultStatusEnum.getMessage(); } }

    全局异常处理

    /** * 全局异常处理 * * @author MoCha * @date 2019/5/25 */ @ControllerAdvice public class GlobalExceptionHandler { @ResponseBody @ExceptionHandler(CustomException.class) public Map<String, Object> handleCustomException(CustomException customException) { Map<String, Object> errorResultMap = new HashMap<>(16); errorResultMap.put("code", customException.getCode()); errorResultMap.put("message", customException.getMessage()); return errorResultMap; } }

    响应结果枚举类

    /** * 响应结果状态枚举类 * * @author MoCha * @date 2019/5/25 */ @NoArgsConstructor @AllArgsConstructor public enum ResultStatusEnum { /** * 请求成功 */ SUCCESS(200, "请求成功!"), /** * 密码错误 */ PASSWORD_NOT_MATCHING(400, "密码错误"); @Getter @Setter private int code; @Getter @Setter private String message; }

    测试自定义异常处理

    @GetMapping("/test/{id:\\d+}") public UserDTO testError(@PathVariable("id") String userId) { throw new CustomException(ResultStatusEnum.PASSWORD_NOT_MATCHING); } @GetMapping("/test2/{id:\\d+}") public UserDTO testError2(@PathVariable("id") String userId) { throw new CustomException(400, "这是400错误"); }
    最新回复(0)