Rails 同学们是如何处理异常的

googya · 2012年07月10日 · 最后由 yggg 回复于 2012年07月10日 · 3934 次阅读

异常处理有什么约定么?比如,什么时候该抛出去,异常的捕获呢,什么时候该捕获,应该捕获什么样的异常?

java 中似乎要求得比较严格,使用有些方法的时候,强制要求捕获或者抛出相应异常。rails 中貌似要求不是那么严格。

另外,ruby 中,要写出比较有自信的代码(我现在的认识是,代码中没有很多的 case when,if else 的判断),我想同样需要有些约定要遵守,大家在实践中如何做的?

java 的异常机制太机械,所以不好。但是 ruby 中如何使用我也有些不确定,应该说异常机制可以让主流程更清晰,但是什么是“异常流程”,这个没有简单的判断方法。

通常,如果外部可以统一处理的,那么我们把这个流程剥离出去一致解决是很好的,不过由于 ruby 本身的表达能力和动态特性,这种”统一处理“错误的场景并不是必须要用异常机制的。

另外还有一个因素,java 代码的规范一般要求不要用异常来做分支处理,主要原因是异常成本很高,但是 ruby 的异常成本是否也很高我就不知道了,求解释

要寫出比較有自信的代碼,我覺得"寫測試"是一個不錯的選擇 :)

#2 楼 @eddie 嗯,rails 一直比较强调测试,测试是必要的。我说的这种自信是来自代码层面,而测试所带来的自信应该是功能层面的。还是有所不同。

关于异常,今天看了一下 exceptinal ruby,感觉收获挺多的。

匿名 #5 2012年07月10日

这个也正是最近在思考的问题,LS 说的书立即入一本读读

需要 登录 后方可回复, 如果你还没有账号请 注册新账号