我们该怎么样定义全局异常处理器?
定义全局异常处理器非常简单,就是定义一个类,在类上加上一个注解
@RestControllerAdvice,加上这个注解就代表我们定义了一个全局异常处理器。
在全局异常处理器当中,需要定义一个方法来捕获异常,在这个方法上需要加上注解
@ExceptionHandler。通过@ExceptionHandler注解当中的value属性来指定我们要捕获的
是哪一类型的异常。
下面是代码演示
@RestControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
public Result ex(Exception ex){
ex.printStackTrace();//打印异常信息
return Result.error("系统异常,请联系管理员");
}
}
解释代码
这段代码是一个全局异常处理类,用于捕获项目中所有的异常,并返回一个统一的错误信息。
@RestControllerAdvice
:这是一个Spring框架的注解,用于定义一个全局异常处理类。这个类可以应用于所有的RESTful控制器,如@RestController
、@Controller
等。
public class GlobalExceptionHandler
:定义了一个名为GlobalExceptionHandler
的公共类,该类继承了RestControllerAdvice
。
@ExceptionHandler(Exception.class)
:这是一个Spring框架的注解,用于指定异常类型。在这个例子中,我们捕获了所有的异常,即Exception.class
。
public Result ex(Exception ex)
:定义了一个名为ex
的公共方法,该方法接受一个Exception
类型的参数。这个方法将作为所有异常的处理器。
return Result.error("系统异常,请联系管理员");
:这是ex
方法的结果。我们返回了一个包含错误信息的Result
对象。在这个例子中,我们返回了一个错误信息为"系统异常,请联系管理员"的Result
对象。总之,这段代码定义了一个全局异常处理类,用于捕获项目中所有的异常,并返回一个统一的错误信息。这个类可以应用于所有的RESTful控制器,如
@RestController
、@Controller
等。