Я заметил, что в иерархии исключений Ruby есть "ошибки", такие как ArgumentError, и есть "исключения", такие как SignalException. Существует ли определенная практика именования исключений? спасибо заранее, ell.
Исключение или ошибка Ruby?
Ответ 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.