SpringBoot 全局异常处理

SpringBoot 全局异常处理

SpringBoot 框架对全局异常 捕获提供了支持

只需要创建一个类和一个方法,并添加两个注解: @ControllerAdvice 和@ExceptionHandler 即可

ErrorResponseData 类为自定义类,自行编写

image

  • @ControllerAdvice:该注解是 spring2.3 以后新增的一个注解,主要是用来为 Controller 的一些公共需 求的低侵入性增强提供辅助,作用于@RequestMapping 标注的方法上。
  • @ExceptionHandler:该注解是配合@ControllerAdvice 一起使用的注解,可以自定义错误处理器,自 行组装 json 字符串,并返回到页面。
@Slf4j
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(RuntimeException.class)
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
@ResponseBody
public ErrorResponseData<?> runTimeError(Throwable e) {
log.error("服务器运行异常", e);
return new ErrorResponseData<>("500",e.getMessage());
}
@ExceptionHandler(IOException.class)
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
@ResponseBody
public ErrorResponseData<?> ioError(Throwable e) {
log.error("io运行异常", e);
return new ErrorResponseData<>("500",e.getMessage());
}
@ExceptionHandler(IOException.class)
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
@ResponseBody
public ErrorResponseData<?> sqlError(Throwable e) {
log.error("sql运行异常", e);
return new ErrorResponseData<>("500",e.getMessage());
}
}

java 异常体系继承图:

image

posted @   进击的乌拉  阅读(150)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
点击右上角即可分享
微信分享提示