This topic created in 2958 days ago, the information mentioned may be changed or developed.
例如:
a = service->getA();
如果 service->getA() 抛出异常, 拿我肯定得在 action 层 catch 住它。
但我认为,作为一个 service,不应该抛出异常,应该在 service 内部 catch 住。
但是我找不到合理的支持。
有没有哪位大神,给下看法?
6 replies • 2018-04-17 11:53:16 +08:00
 |
|
1
Miy4mori Apr 17, 2018
我认为 service 应该抛出异常,然后在 action 中做统一异常处理,如果在 service 中处理了会导致异常处理分散和不能 fast-fail。
|
 |
|
2
Cbdy Apr 17, 2018 via Android
可以抛异常,把异常看作特殊的方返回值就可以了
|
 |
|
3
huisezhiwei Apr 17, 2018
很奇怪为何 业务层不能抛异常? 这种主动抛出的异常本身就属于业务逻辑的一部分。 从另一个方面来说, 异常设计的初衷就是由调用方去处理, 领域层只需要实现业务并遵循领域规则就好。
|
 |
|
4
guojxx Apr 17, 2018
应当是可以抛出异常 事务的定义会是在 service 层完成,如果 catch 了 事务异常就不能正常回滚了 建议多一个业务异常处理类,在 action ?中分别处理业务异常和系统异常
|
 |
|
6
WinMain Apr 17, 2018
抛出的应该是自定义的异常?
|