gpt4 book ai didi

ruby - Ruby 中的 catch 和 throw 在哪里有用?

转载 作者:数据小太阳 更新时间:2023-10-29 06:46:21 24 4
gpt4 key购买 nike

我真的看不出这些有什么合理的用途。已经有了rescueraise,为什么还需要throwcatch?看起来它们应该被用来跳出深层嵌套,但对我来说这闻起来像一个 goto。是否有任何良好、干净地使用它们的示例?

最佳答案

注意: 1.9 中的 catch/throw 似乎发生了一些变化。这个答案适用于 Ruby 1.9。

一个很大的区别是你可以throw任何东西,而不仅仅是从StandardError派生的东西,不像raise。像这样愚蠢的事情是合法的,例如:

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 - Ruby 中的 catch 和 throw 在哪里有用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2018137/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com