Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 2873|回复: 0

论如何优雅的抛出SpringBoot注解的异常

[复制链接]
  • TA的每日心情
    奋斗
    2024-11-24 15:47
  • 签到天数: 804 天

    [LV.10]以坛为家III

    2053

    主题

    2111

    帖子

    72万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    726782
    发表于 2021-4-21 16:03:42 | 显示全部楼层 |阅读模式

     

    平时我们在写代码的时候肯定要进行很多参数验证,最开始的时候我们一般都是这样处理的  如下图  

    看起来好像也没什么,但是  如果参数多了呢?你就会看到这样的校验

    OMG!!!  有没有感觉稍微有点视觉冲击,虽然这样写的已经很规整了,但是还是不够简单和优雅。

    在SpringBoot中,我们可以直接对对象加上@vaild进行参数校验 

    这样写是不是看起来优雅了很多,没错!我们就是要追求这种 小即美 的感觉!!!!!

     

    虽然这样看起来优雅了很多,但是  还有点问题

    当我们进行参数校验的时候   会看到

     

     OMG的! 这一长串又蹦出来了,在页面上弹出来很丑,而且提示不够明确 

    为什么就不能弹出来message里面的内容呢???

     

    显然   是可以的,不过  这个设计注解的人想给后台更多提示,抛出了更详细的内容,实在是丑了点。

    于是为了不写那么丑的代码,我改造了一些网上的代码

     

    @ControllerAdvice
    public class ExceptionHandle {
    @ExceptionHandler(value = RuntimeException.class)
    @ResponseBody
    public String handle(RuntimeException e) {
    if (e instanceof RuntimeException) {
    RuntimeException exception = e;
    return exception.getMessage();
    } else {
    return "未知错误";
    }
    }

    public void exceptionMessage(BindingResult bindingResult) throws SeeingException {
    if (bindingResult.hasErrors()) {
    String msg = bindingResult.getFieldError().getDefaultMessage();
    throw new SeeingException(ErrorCode.BUSINESS_EXCEPTION, msg);
    }
    }
    }
    通过上面简单的几行代码我们就可以直接拿到

     

    另外两个参数是公司框架里面的内容,大家可以忽略

    这时候只剩下了message里面的内容,不过在使用的时候  需要调用下exceptionMessage方法

    还是有些麻烦的,我的想法是可以自定义一个注解,把这部分代码整合进去,有兴趣的可以去试下。

    不过我们终于还是达到了目标不是。

     

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-2-5 02:36 , Processed in 0.060934 second(s), 30 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表