后端项目开发:整合全局异常处理

这篇具有很好参考价值的文章主要介绍了后端项目开发:整合全局异常处理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

新建exception目录,用来进行自定义的全局异常处理。

(1)新建自定义的GlobalException基 类继承RuntimeException类,我们自定义的异常类全部需要继承GlobalException基类进行处理。

这里我们直接利用之前定义的错误码接口类。

/**
 * 自定义的全局异常
 */
public class GlobalException extends RuntimeException{
    private IErrorCode errorCode;

    public GlobalException(String message) {
        super(message);
    }

    public GlobalException(Throwable cause) {
        super(cause);
    }

    public GlobalException(String message, Throwable cause) {
        super(message, cause);
    }

    public IErrorCode getErrorCode() {
        return errorCode;
    }

}

(2)在exception目录下,新建GlobalExceptionHandler类,拦截异常类。

在此类中可以捕获并将异常类转换为可接受的信息返回给前端,防止将异常直接抛出到前端。文章来源地址https://www.toymoban.com/news/detail-669970.html

/**
 * 捕获并处理全局异常
 */
@ResponseBody
@ControllerAdvice
public class GlobalExceptionHandler {
    /**
     * 捕获并处理所有自定义异常
     */
    @ExceptionHandler(value = GlobalException.class)
    public HttpResult handle(GlobalException e) {
        if (e.getErrorCode() != null) {
            return HttpResult.fail(e.getErrorCode());
        }
        return HttpResult.fail(e.getMessage());
    }

    /**
     * 捕获并处理方法参数未验证异常
     */
    @ExceptionHandler(value = MethodArgumentNotValidException.class)
    public HttpResult handleValidException(MethodArgumentNotValidException e) {
        BindingResult bindingResult = e.getBindingResult();
        String message = null;
        if (bindingResult.hasErrors()) {
            FieldError fieldError = bindingResult.getFieldError();
            if (fieldError != null) {
                message = fieldError.getField()+fieldError.getDefaultMessage();
            }
        }
        return HttpResult.validateFailed(message);
    }

    /**
     * 捕获并处理绑定异常
     */
    @ExceptionHandler(value = BindException.class)
    public HttpResult handleValidException(BindException e) {
        BindingResult bindingResult = e.getBindingResult();
        String message = null;
        if (bindingResult.hasErrors()) {
            FieldError fieldError = bindingResult.getFieldError();
            if (fieldError != null) {
                message = fieldError.getField()+fieldError.getDefaultMessage();
            }
        }
        return HttpResult.validateFailed(message);
    }
}

到了这里,关于后端项目开发:整合全局异常处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 后端开发1.项目的搭建

    创建maven项目 pom文件

    2024年02月14日
    浏览(37)
  • 后端项目开发:集成Druid数据源

    Druid作为连接池中间件可以监控数据库访问性能,对数据库密码加密,查看SQL执行日志,扩展JDBC。 添加依赖 参考官方文档:https://github.com/alibaba/druid/wiki 更多配置参考:https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter 启动应用:访问http://localhost:8001/druid/login.html查看监

    2024年02月11日
    浏览(43)
  • 后端项目开发:工具类封装(序列化、反射)

    根据《阿里巴巴开发规范》,包名使用单数,类名可以使用复数。 所以generic-common创建util包和utils工具类 很多时候我们需要将接收到的json数据转换为对象,或者将对象转为json存储。这时候我们需要编写用于json转换的工具类。 新建util目录,再创建JacksonUtils类

    2024年02月11日
    浏览(35)
  • Spring+SpringMVC+MyBatis整合项目开发(配有项目,已开源)

    🍰 个人主页:__Aurora__ 🍞 如果文章有什么需要改进的地方还请各位大佬斧正。 🍉如果我的文章对你有帮助➡️ 关注🙏🏻 点赞👍 收藏⭐️ 🔥最近在学SSM框架,本文是根据b站【黑马程序员 ssm框架 2021 版】整理。 🔥视频链接:https://www.bilibili.com/video/BV1WZ4y1P7Bp?spm_id_from=3

    2023年04月08日
    浏览(51)
  • 后端项目开发:集成接口文档(swagger-ui)

    swagger集成文档具有功能丰富、及时更新、整合简单,内嵌于应用的特点。 由于后台管理和前台接口均需要接口文档,所以在工具包构建BaseSwaggerConfig基类。 1.引入依赖 2.需要添加Swagger配置类。 将需要配置的字段提取出来,单独作为一类 前台接口和后台管理的包的配置,只需

    2024年02月11日
    浏览(37)
  • 后端项目开发:分页功能的实现(Mybatis+pagehelper)

    分页查询是项目中的常用功能,此处我们基于Mybatis对分页查询进行处理。 引入分页依赖 在http目录下,新建PageResult类,我们用此类包装分页结果。

    2024年02月11日
    浏览(41)
  • 后端项目开发:爬取动态网页(webmagic和selenium)

    爬取网页一般是用Python的PhantomJS比较多,当然java也可以爬网页,主要是靠Chrome-Headless(无头浏览器)模拟浏览器爬取网页的,该项目由google公司维护,相比于PhantomJS,拥有更好的性能及效率。 使用java的话,需要加入webmagic和selenium的maven依赖包实现网页的获取。 WebMagic的有四

    2024年02月09日
    浏览(42)
  • 遇到跨端开发或多项目开发时,遇到的一些问题探讨,后端开发语言如何选择?

    ​最近有同学问我,做后端开发项目时用php,java,c#,go,pathon...哪个好,从最近阿里云、美团服务器崩溃来看,我想给你最直接的回答是,没有完美的,只有适合自己的。咱们讨论最多的问题就是跨多端开发,以及多项目开发后期所带来的升级、维护等相关问题,接下来就

    2024年02月04日
    浏览(45)
  • Linux的开发环境安装配置与后端项目部署

    目录 一.安装开发环境 1.准备阶段 1.1 创建新目录 1.2 解压文件 2.JDK的安装与配置环境变量 2.1 解压jdk压缩包 2.2 配置环境变量 2.3 设置环境变量生效  2.4 验证是否安装成功 3.Tomcat的安装与使用 3.1 解压安装 3.2 开启服务 3.3 开放端口   3.4 访问成功 4.MySQL的安装 4.1 检查卸载原有

    2024年02月06日
    浏览(44)
  • 【Dolphinscheduler3.1.1】二次开发本地启动项目(前端+后端)

    由于业务的定制化开发,需要对Dolphinscheduler进行二次开发,现将项目的启动步骤记录如下。 Maven: v3.5+,配阿里云仓库地址即可 Node: v16.+ MySQL (5.7系列) : 两者任选其一即可 JDK (1.8+) : 必装 ZooKeeper (3.7.1) :必装 ZooKeeper安装步骤如下 官网下载压缩包并解压到D:Program Files (x86)zoo

    2024年01月21日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包