Я предполагаю, что исключения предоставляются, когда они могут быть полезны при метапрограммировании.Вы можете легко создать глобальную переменную или переменную экземпляра, если обнаружите, что она отсутствует - я часто вижу идиому:
@var ||= 'default_value'
Не нужно ничего особенного.
Для классов - другие константыи методы, более неудобно проверять, определены ли они, и использовать их встроенными.Исключения (и связанные с ними методы, такие как const_missing
и method_missing
, предоставляют хуки для обработки их отсутствия. Например, я считаю, что Rails использует const_missing
для загрузки классов во время выполнения.