9 回答
TA贡献2019条经验 获得超9个赞
我的设计一般是DAO层不处理任何异常,Service层调用DAO层并捕获异常,然后通过一个状态码将信息返回给Action层。
个人觉得,Action层的逻辑尽量简单些为好,因为Action是接口层,太复杂让人难以一眼看穿接口要提供的功能。
TA贡献1784条经验 获得超8个赞
错误码在面向过程的语言中非常常见,但是在面向对象的过程中,使用异常来处理多一点。
使用错误码的缺点是:
1、对错误的检测不是强制的
2、代码充斥各种if else的错误码判断
使用异常的好处是:
1、对错误的检测是强制的,你必须处理或者上抛异常
2、代码不必对各种状态码进行判断,有异常直接抛出终止往下运行
3、对于错误有堆栈可以追踪。
TA贡献1842条经验 获得超12个赞
TA贡献1863条经验 获得超2个赞
TA贡献1770条经验 获得超3个赞
持久化这块一般不进行逻辑处理,往上一级抛最好,不然以后要改用一些持久化框架了移植起来太麻烦
虽然造成异常的情况有很多,但对用户的结果来说就是没成功,至于为什么没成功是留给开发人员看的,所以我认为不用返回这么多种结果,直接返回异常开发人员通过查看哪种异常也能判断原因
我想你要记录这个应该是用来判断如果出错了是哪里出错是吧,打印日志应该是一个挺普遍的做法,把异常之类的加入到日志里
TA贡献1884条经验 获得超4个赞
嵌套了多少层?
先学会减少嵌套吧
另外service层就是返回确定的结果,它就是处理异常和业务逻辑的
action层起到路由的作用,调用该调的service直接返回就好
TA贡献1804条经验 获得超7个赞
你这个例子无所谓,
但是存在事物的情况下,就有所谓了,
如果你使用的是申明式事物,那么事务中的某一个中间环节出错,因为错误直接抛出,所以可以在事务开启的那一层被catch到,并回滚当前事务中所有的操作,
如果你在dao曾捕获了异常,那么感知这个业务是否需要回滚就变得很麻烦,需要对每一个dao操作结果进行判断。
添加回答
举报