Web后端开发:登录认证案例-异常处理

时间:2024-02-15 11:51:40

  出现异常之后,最终服务端给前端响应回来的数据是一个JSON格式的数据,但这种JSON格式的数据不是开发规范中所提到的统一响应结果Result,由于返回的数据不符合开发规范,所以前端并不能解析出响应的JSON数据。

在三层构架项目中,出现了异常,该如何处理?
	方案一:在所有Controller的所有方法中进行try…catch处理
	缺点:代码臃肿(不推荐)
	
	方案二:全局异常处理器
	好处:简单、优雅(推荐)

在这里插入图片描述

全局异常处理器

  我们该怎么样定义全局异常处理器?定义全局异常处理器非常简单,就是定义一个类,在类上加上一个注解@RestControllerAdvice,加上这个注解就代表我们定义了一个全局异常处理器。在全局异常处理器当中,需要定义一个方法来捕获异常,在这个方法上需要加上注解@ExceptionHandler。通过@ExceptionHandler注解当中的value属性来指定我们要捕获的是哪一类型的异常。


/*全局异常处理*/
@RestControllerAdvice
public class GlobalExceptionHandler {
    //处理异常
    @ExceptionHandler(Exception.class) //捕获所有异常
    public Result ex(Exception e){
        e.printStackTrace();//打印堆栈中的异常信息

        //捕获到异常之后,响应一个标准的Result
        return Result.error("对不起,操作失败,请联系管理员");
    }
}