为客户端抛出指定异常

说明:

1. 此方法无法拦截到Filter抛出的异常

2. BaseException 为自定义异常

3. ResponseResult 为自定义结果集封装

4. 如果全系统均使用BaseException异常类,则会造成所有抛出异常都会回显客户端,所有还是建议区分客户端异常和服务端异常

@RestControllerAdvice
public class RestHandlerException {
    /**
     * 为客户端抛出指定异常
     * @param e 指定异常
     */
    @ExceptionHandler(value = ClientException.class)
    public ResponseResult<Object> handleException(ClientException e) throws ClientException {
        //可以根据公司情况不同,类似的异常可能需要不同的状态码
        return ResponseResult.error(e.getCode(), e.getMessage());
    }
}