2014-02-22 133 views
2

我在任何Ruby對象中都找不到rescue。我可以通過下面的方式找到raise救援方法在哪裏?

Kernel.private_instance_methods.grep(/^rai/) 

但是,救援在哪裏?

+0

這就像問'if'在哪裏。 – matt

+0

@matt這可能看起來微不足道,但考慮2行'var1 = 42如果42'和'var2 = 4 * 4'。 'if'和'*'看起來像中綴方法。 PS。我記得在Haskell中你可以寫入中綴方法。 –

+0

@DarekNędza我沒有說要問'if'在哪裏是錯誤的。我說你無法找到「救援」的原因(例如,它沒有在http://www.ruby-doc.org/core-2.1.0/上列出)與你無法解釋的原因相同找到'if'。 – matt

回答

5

rescue不是一種方法。這是一個硬連線到Ruby的關鍵字。

+0

引人入勝,所以它在Ruby 2.0中是新的?我認爲它曾經是1.9中Object的一部分。 – beautifulcoder

+0

不,它不是[1.9中的對象](http://www.ruby-doc.org/core-1.9.1/Object.html)的一部分。 –

+0

@beautifulcoder可能與StandardError,ArgumentError等混淆,它們是對象嗎? – steenslag