您的位置:首页 > 房产 > 建筑 > springboot怎么实现全局异常处理

springboot怎么实现全局异常处理

2025/1/23 5:52:56 来源:https://blog.csdn.net/qq_65961295/article/details/140638666  浏览:    关键词:springboot怎么实现全局异常处理

在 Spring Boot 中实现全局异常处理可以通过定义一个控制器建议类(ControllerAdvice)来完成。这种机制允许你集中处理应用程序中所有控制器抛出的异常。下面是如何设置全局异常处理的基本步骤:

  1. 创建一个 ControllerAdvice 类: 创建一个新的类,并使用 @ControllerAdvice 注解。这个注解表明该类中的方法可以被用来处理控制器中的异常。

  2. 定义异常处理器方法: 在 ControllerAdvice 类中,定义一个或多个方法来处理特定类型的异常。这些方法应使用 @ExceptionHandler 注解,并接受一个参数,这个参数应该是你想要处理的异常类型。

  3. 返回适当的 HTTP 响应: 在异常处理器方法中,你可以返回一个 ResponseEntity 或者 ModelAndView 来指定 HTTP 状态码和响应体的内容。

以下是一个简单的示例:

@ControllerAdvice
public class GlobalExceptionHandler {@ExceptionHandler(value = {Exception.class})public ResponseEntity<Object> handleAllExceptions(Exception ex, WebRequest request) {// 你可以在这里记录异常信息或者做一些其他的处理String errorMessage = "An error occurred: " + ex.getMessage();// 返回一个包含错误信息的 HTTP 响应return new ResponseEntity<>(errorMessage, HttpStatus.INTERNAL_SERVER_ERROR);}@ExceptionHandler(value = {NullPointerException.class})public ResponseEntity<Object> handleNullPointerException(NullPointerException ex, WebRequest request) {String errorMessage = "Null pointer exception: " + ex.getMessage();return new ResponseEntity<>(errorMessage, HttpStatus.BAD_REQUEST);}
}

在这个例子中,我们定义了一个全局异常处理器,它可以捕获所有的异常(通过 Exception.class),并且还专门处理了 NullPointerException。对于每种类型的异常,我们可以自定义响应的状态码和消息。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com