专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

项目中的Springboot全局异常处理

SpringBoot2.X全局异常处理

  • 为什么要配置全局异常
    • 不配全局服务端报错场景:1/0,空指针等
  • 配置的好处
    • 统一的错误页面或者错误代码
    • 对用户友好显示
  • pringboot2.X怎么在项⽬中配置全局异常
    • 类加载注解
      • @ControllerAdvice,返回页面,如果需要返回json数据,则⽅法需要加@ResponseBody
      • @RestControllerAdvice, 默认返回json数据,⽅法不需要加@ResponseBody
    • 方法处理器
      • 捕获全局异常,处理所有不可知的异常
      • @ExceptionHandler(value=Exception.class)

不配置异常处理的演示

我们正常请求一个接口数据,然后在里面内置一个异常,看一下返回的数据是什么

81_1.png81_2.png

可以看到浏览器返回的数据对于用户来说,是看不懂的一串代码,体验非常不友好,这时候就需要用到配置异常处理了

配置异常处理

新建一个handler包,在里面创建一个异常处理类,编写下面代码

public class ExtHandler {

    @ExceptionHandler(value = Exception.class)
    Object handlerException(Exception e, HttpServletRequest request){
        return JsonData.buildError("服务器出错啦,稍后再访问",-2);
    }
}

重新请求接口数据:

81_3.png

异常处理跳转到错误页面

有时候需求需要实现异常跳转,这里用thymeleaf演示一下

@ControllerAdvice
public class ExtHandler {

    @ExceptionHandler(value = Exception.class)
    Object handlerException(Exception e, HttpServletRequest request){
        ModelAndView modelAndView=new ModelAndView();
        modelAndView.setViewName("error.html");
        modelAndView.addObject("msg","异常啦");
        return modelAndView;
    }
}

81_4.png

文章永久链接:https://tech.souyunku.com/27228

未经允许不得转载:搜云库技术团队 » 项目中的Springboot全局异常处理

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们