Что касается метода классаException.exception
, официальная документация (http://www.ruby-doc.org/core-2.0/Exception.html#method-c-exception) говорит:Ошибка в документации класса исключений Ruby?
При отсутствии аргумента, или если аргумент является такой же, как приемник, вернуть трубку. В противном случае создайте новый объект исключения из того же класса, что и получатель, но с сообщением, равным string.to_str.
Это верно для метода экземпляра с тем же именем, но не для метода класса.
ExampleError.exception
не возвращает приемник:
class ExampleError < Exception; end
p ExampleError.class # => Class
p ExampleError.exception.class # => ExampleError
Спасибо. Я понял, что Exception.new и Exception.exception производят один и тот же вывод, я просто был смущен, что это противоречило документации. Ваш ответ велик. – yonso