Подтвердить что ты не робот

Исключение или ошибка Ruby?

Я заметил, что в иерархии исключений Ruby есть "ошибки", такие как ArgumentError, и есть "исключения", такие как SignalException. Существует ли определенная практика именования исключений? спасибо заранее, ell.

4b9b3361

Ответ 1

Рассматривая список исключений Ruby, SignalException - единственный, который называется *Exception; все остальное - XXXError (кроме SystemExit и fatal). Во всяком случае, практика заключается в том, чтобы называть ваше исключение FooError. У меня возникли проблемы с поиском какой-либо конкретной причины, почему SignalException не назван SignalError.

Ответ 2

Соглашение Module::#{Type}Error для всего, что вызвано вашим приложением (например, http://weblog.jamisbuck.org/2007/3/7/raising-the-right-exception). Обработка исключений в Ruby не стратифицирована так же, как в Java, поскольку модель исключения отличается на уровне языка.

Из того, что я видел, соглашения привязаны к немного более свободно для расширений C/FFI/JNA.