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

前端之家收集整理的这篇文章主要介绍了在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>'

猜你在找的Ruby相关文章