抛异常的一个问题
来源: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!共同建造、维护这门课程,我需要每一个你!
112020-09-21
相似问题