Spring MVC框架提供了统一处理异常机制,使特定种类的异常对应一段特定的代码,当编写代码时,无论在任何位置,都可以将异常直接抛出,由统一处理异常的代码进行处理。
- 注解:添加@ExceptionHandler注解
- 访问权限:公有
- 返回值类型:处理请求的方法的返回值类型
- 方法名称:自定义
- 参数列表:必须包含1个异常类型的参数,按需添加HttpServletRequest、HttpservletResponse等特定类型的参数,不可以随意添加参数。
@ExceptionHandler
public String handleException(NullPointerException e){
return "Error,NullPointerException!";
}
以上处理异常代码只作用于当前控制器类中请求处理的方法,对其他控制器类中的代码并不产生影响,无法处理其他控制器类的异常。为了更合理处理异常应该:
- 将处理异常代码放在专门的类中
- 类上添加@ControllerAdvice注解或@RestControllerAdvice注解。
GlobalExceptionAdvice类
@RestControllerAdvice
public class GlobalExceptionAdvice {
@ExceptionHandler
public String handleException(NullPointerException e){
return "E