在Ruby中有哪些catch和throw有用?

我真的没有看到这些的理智用途.已经有救援和提高了,所以为什么需要扔和抓?似乎他们应该被用来跳出深层次的嵌套,但是这只是闻起来像一个goto给我.有没有这些好的,干净使用的例子?

解决方法

注意:在1.9中,catch / throw看起来有些改变了.这个答案适用于 Ruby 1.9.

一个很大的区别是,你可以抛出任何东西,而不仅仅是派生自StandardError的东西,而不像加注.像这样愚蠢的事情是合法的,例如:

throw Customer.new

但这不是非常有意义的.但你不能做:

irb(main):003:0> raise Customer.new
TypeError: exception class/object expected
    from (irb):3:in `raise'
    from (irb):3
    from /usr/local/bin/irb:12:in `<main>'

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...