记录一次在Spring中处理统一异常处理的方法

@RestControllerAdvice

@ControllerAdvice,是Spring3.2提供的新注解,从名字上可以看出大体意思是控制器增强。

@ExceptionHandler

@ExceptionHandler用来与@RestControllerAdvice配合使用,当捕获到指定的异常时,可以作出相应处理。

这里展示当参数签名失败时的异常处理:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
@RestControllerAdvice
public class SignatureExceptionHandler extends ResponseEntityExceptionHandler {

public SignatureExceptionHandler() {
}

@ExceptionHandler(SignatureExpireException.class)
public RestResponse<?> handleSignatureExpireException(SignatureExpireException ex) {
// 当然, 这是最简单的处理,还可以有多种拓展方式,这里只展示一下怎么使用
return ResultBuilder.signatureError(ErrorCodeEnum.SIGNATURE_ERROR,
ex.getMessage());
}

}

这时, 当捕获到SignatureExpireException异常的时候, 就会进入这个handler里面来处理。