2014-02-22 98 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