在Java应用开发中,异常处理是一个非常重要的环节。良好的异常处理不仅可以提高应用的稳定性,还可以提升用户体验。全局异常处理器是Java中一种强大的机制,它允许开发者集中处理所有的未捕获异常,确保应用在遇到错误时能够优雅地处理,而不是让应用崩溃或产生不可预测的行为。
什么是全局异常处理器?
全局异常处理器是指在Spring框架(或其他Java框架)中,通过特定的注解或配置,集中处理所有未被捕获的异常。这通常涉及到创建一个特殊的控制器或类,它能够捕获并处理所有未被其他部分代码捕获的异常。
全局异常处理器的应用
在全局异常处理器中有重要的三个注解
@ControllerAdvice
@ResponseBody
@ExceptionHandler
@ControllerAdvice
@ControllerAdvice
是一个类级别的注解,用于定义全局异常处理器、数据绑定配置或自定义的预处理逻辑。它允许开发者在一个地方集中处理多个@Controller
或@RestController
的异常和生命周期事件。
@ResponseBody
@ResponseBody
是一个方法级别的注解,用于指示Spring MVC将方法的返回值直接作为HTTP响应的正文返回给客户端,而不是返回一个视图(View)。
@ExceptionHandler
@ExceptionHandler
是一个方法级别的注解,用于指定某个方法处理特定类型的异常。
一般来说,简单的一些小项目,我们使用 两个注解就够用了
@RestControllerAdvice
@ExceptionHandler
其中 @RestControllerAdvice = @controllerAdvice + @ResponseBody。
简易全局异常处理器类
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
@RestControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
public result ex(Exception ex) {
ex.printStackTrace();
String message = ex.getMessage();
return result.error(message);
}
}
知识扩展
如何创建自定义异常类:Java拦截器应用-CSDN博客