在 Spring Boot 中,你可以使用 `@ControllerAdvice` + `@ExceptionHandler` 注解来实现全局异常处理 。`@ControllerAdvice` 注解用于定义异常处理器,`@ExceptionHandler` 注解用于定义处理异常的方法 。一个异常处理器可以处理多个异常,也可以为每种异常定义不同的处理方法 。
以下是一个简单的全局异常处理器的示例:
@ControllerAdvicepublic class GlobalExceptionHandler {@ExceptionHandler(Exception.class)public ResponseEntity handleException(Exception e) {// 定义处理异常的逻辑String errorMsg = "出错啦!请稍后再试 。";return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(errorMsg);}}
上述代码定义了一个全局异常处理器,可以处理所有异常 。当 Spring Boot 应用程序抛出异常时,将被这个处理器捕获,并调用 `handleException` 方法来处理 。该方法会返回一个包含错误消息的 HTTP 响应体 。
需要注意的是,`@ControllerAdvice` 注解一般需要定义在一个单独的类中 , 而不是在控制器类中 。
@ControllerAdvicepublic class GlobalExceptionHandler {@ExceptionHandler(RuntimeException.class)public ResponseEntity handleRuntimeException(RuntimeException e) {// 处理 RuntimeException 异常String errorMsg = "出错啦!";return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(errorMsg);}@ExceptionHandler(MyException.class)public ResponseEntity handleMyException(MyException e) {// 处理 MyException 异常String errorMsg = "自定义异常:" + e.getMessage();return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(errorMsg);}}
在上述代码中 , 定义了两个异常处理方法 。`handleRuntimeException` 方法处理 `RuntimeException` 类型的异常,而 `handleMyException` 方法处理 `MyException` 类型的异常 。根据抛出的异常类型 , Spring Boot 将选择相应的方法来处理异常 。
【springboot 高级教程 全局异常处理】以上就是朝夕生活(www.30zx.com)关于“springboot 高级教程 全局异常处理”的详细内容 , 希望对大家有所帮助!
猜你喜欢
- 售后自动退款在视频号小店怎么设置?
- C++中几个常见的异常类
- 启动CAD软件,显示CAD致命错误,如何解决?
- 这样做你可以成为CAD高手,多位老师傅分享使用技巧!
- CAD小技巧:CAD经常出现的问题及解决方案七,请关注加收藏
- CAD崩了怎么办?没事,这招帮你搞定
- PLC故障灯闪烁不断,工程师你能第一时间解决吗?
- 本地搭建一个 pkg.go.dev:遇到的问题和解决
- QTP UI自动化常见问题