日期:2014-05-17  浏览次数:20870 次

Service层返回错误信息,异常 or 返回值 ?
本帖最后由 ying0620 于 2013-04-07 17:53:15 编辑
如题.

老生常谈的问题. 

如果用返回值, 有的方法需要返回和业务相关的值, 这时候返回错误信息就不行了

如果用异常, 一是controller变得臃肿, 二是种类异常太多, 有用异常"控制流程"的嫌疑.
service exception validation j2ee asp.net?mvc

------解决方案--------------------
我怎么感觉LZ想太多了呢,该返回值的时候就返回值,该返回异常的时候就返回异常,在service控制一下就OK了。疑惑中................
------解决方案--------------------
异常的时候为什么要返回值?错误码?
------解决方案--------------------
如果一个查询方法,要返回记录数int或者记录集合ArrayList
当程序出现错误时,可以返回-1或者一个空的ArrayList。
当然我们也要在程序容易出现异常的地方可以自行处理,该中断的中断,该回滚的回滚。

------解决方案--------------------
引用:
比如说, 账户A要转款到账户B, 但是业务逻辑发现A的余额不足, 这时候以何种形式反馈到上层的调用者(呈现层)?
我个人感觉, 异常应该在"程序无法继续", 而不是"业务无法继续"的时候抛出. 因为后者是可预期的.

引用:我怎么感觉LZ想太多了呢,该返回值的时候就返回值,该返回异常的时候就返回异常,在service控制一……

这种情况你直接返回一个相应的信息(如:余额不足),两种结合起来用是很好的。多看下别人怎么写的
------解决方案--------------------
代码整洁之道里面推荐用异常,不过这还得看个人习惯问题