springboot局部异常和全局异常
局部异常
在控制器类中添加一个方法,结合@ExceptionHandler。但是只能对当前控制器中方法出现异常进行解决。(局部异常)
@RestController
public class ErrorController {
@GetMapping("testerror")
public String testerror(){
System.out.println(1/0);
return "testerror";
}
@ExceptionHandler(ArithmeticException.class)
public String ArthException(){
return "数学运算异常了";
}
}
全局异常
新建全局异常类,通过@ControllerAdvice结合@ExceptionHandler。当全局异常处理和局部处理同时存在时,局部生效(就近原则)
@ControllerAdvice
public class GlobalExceptionHandler {
/**
* 全局方法的500异常
* @return
*/
@ExceptionHandler(ArithmeticException.class)
@ResponseBody
public String exhandler(){
return "全局存在数学运算异常";
}
}
全局异常加入@ControllerAdvice 注解后不需要其他配置即可使用。