例如:我们都知道在java中被除数不能为0,为0就会报by zero错误
@RestController public class TestController { @GetMapping("/ex") public Integer ex(){ int a = 10 / 0; return a; } }
打印结果:
如何将这个异常进行处理?
创建全局异常处理类类名自定义
@RestControllerAdvice public class OverallHandleException { @ExceptionHandler public void arithmeticException(ArithmeticException ex){ String msg = ex.getMessage(); if(msg.contains("by zero")){ System.err.println("被除数数不能为0"); }else{ System.err.println("未知错误"); } } }
@RestControllerAdvice:@ControllerAdvice加了一个@ResponseBody注解,用来将返回值写入到响应体
@ExceptionHandler:异常拦截器
打印结果:
首先得获取异常得名称,这样就可以对异常进行处理,也可以定义成所有异常的父级Exception