@Order(1)
@RestControllerAdvice
public class SqlExceptionHandler {
@ExceptionHandler(SQLIntegrityConstraintViolationException.class)
public AppResult errorHandler(Exception ex) {
Log.get().error(ex);
return AppResult.error("请检查唯一项是否冲突!");
}
}
@Order(100)
@RestControllerAdvice
public class OtherExceptionHandler {
@ExceptionHandler(Exception.class)
public AppResult errorHandler(Exception ex) {
Log.get().error(ex);
return AppResult.error("系统异常!");
}
}
1. 可用定义多个异常处理类,使用@Order注解表示捕获优先级,值越小,优先级越高
2. 把Exception.class优先级调到最低,表示没有捕获到最后进入备选方案
3. AppResult 为自定义的输出对象
4. Log 为Hutool工具包里的日志对象