问题:
在构建项目时,往往会出现很多异常,需要处理,但一个个处理过于费劲,所以通常使用全局异常处理
方法1:创建全局异常处理类(通用)
用于声明处理全局Controller方法异常的类 @ControllerAdvice public class GlobalExceptionHandler {用于声明处理异常的方法 属性用于声明该方法处理的异常类型@ExceptionHandler(Exception.class)表示将方法的返回值作为HTTP的响应体@ResponseBodypublic Result error(Exception e){e.printStackTrace();return Result.fail();}当项目抛出异常,该类会进行捕获,后根据方法返回对应的异常状态信息给前端,
方法2:自定义异常(精确)
@Datapublic class DiyException extends RuntimeException{private Integer code;public DiyException(Integer code,String massage){super(massage);this.code=code;} }
@ControllerAdvice public class GlobalExceptionHandler {//处理所有异常@ExceptionHandler(Exception.class)@ResponseBodypublic Result error(Exception e){e.printStackTrace();return Result.fail();}//将自定义异常添加到全局异常处理类中//处理自定义异常@ExceptionHandler(DiyException.class)@ResponseBodypublic Result error(DiyException e){e.getCode();e.getMessage();return Result.fail(e.getCode(),e.getMessage());} }Exception的范围过大,无法准确的向前端,发生正确的错误信息,则可通过自定义异常,进行异常处理(其实可以理解成将try,catch统一到一个类下进行统一管理)