抛异常的一个问题

来源:7-1 你是不是总看不明白别人的自定义的异常?

骑着猪找未来

2020-09-18

图片描述
图片描述
图片描述
一哥,图1是工程里的controller层的大概模板,都是这样new一个响应类来返回给前端,下面两张是我写的,封装了一个统一响应类,领导说我写的没有抛出异常,要向他们一样在controller抛出异常,我听着大概意思应该是数据库操作的时候万一有异常的场景,请问一哥,我这个代码存在这方面的问题吗,应该怎样改造。(项目里没做全局异常处理,所以错误返回我也是直接通过响应类来处理了)

写回答

1回答

张勤一

2020-09-18

骑猪大佬你好:

    怎么说呢,我没有办法评价你所写的模板代码,但就我个人对代码和工程业务的理解,这样的写法显得多余而且丑陋,大量的样板代码(为什么不使用统一的异常捕获去拦截处理呢?)

    另外,在 Controller 层中捕获异常的意义是什么呢?Service 不仅仅是处理业务逻辑的地方,当然也是处理异常的地方。所以,我更推崇的做法是:

    (1)实现都放在 Service 里面去做,业务逻辑 + 处理异常

    (2)Controller 中的方法应该最多只有两行代码:第一行记录下日志,第二行直接 return service.something

    但是,如果你所在的公司、业务线要求你那样做,你只能“服从安排”,何必做个另类呢?有些事自己知道就行了,你的优良做法、性能提升也许在别人眼中都是 -- 矫揉造作!


    我是勤一,致力于将这门课程的问答区打造为 Java 知识体系知识库,Java 知识体系 BBS!共同建造、维护这门课程,我需要每一个你!

1
1
骑着猪找未来
一哥,还有一个问题,业务代码中的dao层操作,假如运行的时候数据库突然有了异常,插入数据查询数据产生异常了,那我们在写的时候,要用try catch 把这个数据库操作包起来吗
2020-09-21
共1条回复

Java实操避坑指南 SpringBoot/MySQL/Redis错误详解

掌握业务开发中各种类型的坑,,Java web开发领域通用

466 学习 · 204 问题

查看课程