一、springboot异常处理
1.SpringBoot 默认的异常处理机制
默认情况,SpringBoot 提供两种不同响应方式
-
一种是浏览器客户端请求一个不存在的页面或服务端异常时,SpringBoot默认会响应一个
html
-
另一种是使用
postman
等调试工具请求不存在的url或服务端异常时,默认返回json信息
2.SpringBoot 全局异常处理
一般我们不会将错误信息返回前端,自己去try catch
捕获异常,但有个问题:每个方法都这样捕获异常,肯定是不合适,这是我们就需要全局的异常处理了。
@RestController
public class ExceptionController {
@GetMapping("exceptionA")
public void methodA() {
try {
int a = 100 / 0;
} catch (Exception e) {
e.printStackTrace();
}
}
}
2.1 局部异常处理
使用@EceptionHandle
注解实现某个类的局部异常处理
@RestController
public class ExceptionController {
@GetMapping("exceptionA")
public void methodA() {
int a = 100 / 0;
}
/**
* 局部异常处理
*/
@ExceptionHandler(Exception.class)
public String exHandler(Exception e) {
// 判断发生异常的类型是除0异常则做出响应
if (e instanceof ArithmeticException) {
return "发生了除0异常";
}
// 未知的异常做出响