@HandlerException
在spring中处理异常时,通常会在Controller中定义具体的异常处理方法,这个方法上使用@HandlerException注解进行描述.例如在指定Controller中定义异常处理方法:
@ExceptionHandler(value=Exception.class)
@ResponseBody
public String handleException(Exception e){
System.out.println("局部异常处理");
return e.getMessage();
}
当异常处理类中有很多异常处理的方式是相同的,还可以将这个异常处理方法提取到父类,从而实现方法的重用.
@ControllerAdvice
如果不想将共性的异常处理方法提取到父类,还可以在外部定义一个全局的异常处理类,这个类的使用@ControllerAdvice注解进行修饰,然后在这个类中定义具体的异常处理方法,这些方法再使用@HandlerExcpeiton进行修饰,例如:
@ControllerAdvice
public class AdviceExceptionHandler {
@ExceptionHandler(Throwable.class)
@ResponseBody
public String handlerException(Throwable e){
System.out.println("全局的异常处理");
return e.getMessage();
}
}