Какие исключения вы ловите, когда не указываете класс исключений в ruby? - PullRequest
2 голосов
/ 01 мая 2010

Какие исключения вы ловите, когда не указываете такой класс исключений, как этот:

begin
  # do something
rescue
  puts "Exception!"
end

1 Ответ

7 голосов
/ 01 мая 2010

Согласно моей копии Программирование на Ruby 1.9 ,

Предложение спасения без параметра обрабатывается так, как если бы оно имело параметр StandardError.

А вот документация ruby-doc.org :

По умолчанию rescue только перехватывает StandardError и его потомков, но вы можете указать, какие исключения вы хотите обработать, в качестве аргументов. (Этот метод не работает, когда rescue находится в позиции модификатора оператора.)

В разделе «Почему нет» имеется иерархия исключений , если вам нужно сослаться на нее.

В качестве краткого справочника классами исключений, которые не являются производными от StandardError, являются:

  • fatal
  • NoMemoryError
  • ScriptError
  • SignalException
  • SystemExit
  • SystemStackError
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...