您的位置:首页 > 编程语言 > Java开发

SpringBoot全局异常处理

2019-07-19 00:49 537 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/zzti_erlie/article/details/96472262

介绍

在Spring Boot项目中,代码出现异常会跳转到/error页面进行错误展示,对用户和前端都不友好,我们希望以友好的方式来显示异常。先来演示一下默认的异常处理

@RestController
public class TestController {

@RequestMapping("test")
public String error() {
int a = 10 / 0;
return "0";
}

}

发生异常页面显示

配置一个全局异常处理器

@ControllerAdvice
public class GlobleExceptionHandler {

@ExceptionHandler(Exception.class)
@ResponseBody()
public String handlerException(Exception e) {
return "occur an error, " + e.toString();
}
}

结果为

handlerException能接受的的参数很多,按需填入即可

@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ExceptionHandler {
Class<? extends Throwable>[] value() default {};
}

ExceptionHandler注解的值是一个列表,应该你可以传入多种不同的Exception。你也可以指定好几个异常处理器来处理不同的异常,如下所示。

// 未知异常处理方法
@ExceptionHandler(Exception.class)
@ResponseBody()
public String handlerException(Exception e) {
return "occur an error, " + e.toString();
}

// 业务异常处理方法
@ExceptionHandler(BusinessException.class)
@ResponseBody()
public String handlerBusinessException(BusinessException e) {
return "occur an error, " + e.toString();
}

参考博客

[1]https://mp.weixin.qq.com/s/ppgFzmqMdeLuPWWtRnB-yw

3ff7
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: