Использование правильного подкласса исключений в ruby - PullRequest
5 голосов
/ 31 марта 2009

У меня есть доступ к иерархии исключений ruby ​​(она упоминается и в кирке, и в колибри), но я не уверен, какое исключение использовать, потому что я не нашел никакой информации о том, что означает каждый из терминов.

Имеет ли значение правильный класс исключений?

Ответы [ 3 ]

10 голосов
/ 31 марта 2009

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

8 голосов
/ 31 марта 2009

«Это зависит».

Одной из основных проблем с Ruby является отсутствие хорошей спецификации. Хотя раньше было хуже.

Это в основном вопрос стиля: если ваша ошибка может быть хорошо описана с помощью одного из встроенных классов исключений, используйте ее. Если вы думаете, что подкласс имеет смысл, используйте его.

В противном случае, вы можете рассмотреть этот отрывок из стандарта кодирования C ++ :

Создание очень сложного исключения иерархии это пустая трата времени. Никто заканчивается забота и все усилия идут тратить. Вместо этого создайте исключение для библиотеки или пространства имен и есть причина исключения в этом исключение для указания типа исключение.

Например, для инкапсуляции вашей ОС libary, сделайте исключение под названием OsencapException.

1 голос
/ 31 марта 2009

номер

Или, скорее, если это не имеет значения для вас, это вообще не имеет значения для кого-либо еще. Если вы пишете библиотеку, вы должны использовать то, что пользователи вашей библиотеки поймут, но это все.

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