美文网首页
Spring Boot REST API 错误处理 - @Exc

Spring Boot REST API 错误处理 - @Exc

作者: 又语 | 来源:发表于2020-04-16 16:58 被阅读0次

    本文介绍 Spring Boot 使用 @ExceptionHandler 注解处理 REST API 异常的方法。


    @ExceptionHandler 工作在 Controller 层,此方法有个明显的缺陷:@ExceptionHandler 注解的方法只对当前 Controller 有效,并不对整个应用生效,所以为每个 Controller 都添加此注解方法并不适用于通用异常处理。当然还可以为所有的 Controller 定义一个统一的父类,将 @ExceptionHandler 注解的方法定义在父类中,但是继承本身就存在其它的问题。
    代码示例:

    package tutorial.spring.boot.mvc.controller;
    
    import org.springframework.web.bind.annotation.ExceptionHandler;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    @RequestMapping("/exception")
    public class ExceptionHandlerController {
    
        @GetMapping("/illegal/state")
        public String illegalState() {
            throw new IllegalStateException();
        }
    
        @GetMapping("/illegal/argument")
        public String illegalArgument() {
            throw new IllegalArgumentException();
        }
    
        @GetMapping("/unsupported/operation")
        public String unsupportedOperation() {
            throw new UnsupportedOperationException();
        }
    
        @ExceptionHandler({IllegalStateException.class, IllegalArgumentException.class})
        public String handleIllegalException(Exception e) {
            return "handleIllegalException worked: " + e;
        }
    
        @ExceptionHandler(UnsupportedOperationException.class)
        public String handleUnsupportedException(Exception e) {
            return "handleUnsupportedException worked: " + e;
        }
    }
    

    相关文章

      网友评论

          本文标题:Spring Boot REST API 错误处理 - @Exc

          本文链接:https://www.haomeiwen.com/subject/vjldvhtx.html