Недавно я заметил, что Exception
имеет несколько конструкторов, которые принимают в качестве параметра Throwable
. Throwable
имеет два подкласса: Error
и Exception
, и, как правило, вся документация указывает, что вы не должны пытаться поймать или обработать Error
. Поэтому мне любопытно, почему Exception
принимает значение Throwable
как параметр конструктора вместо Exception
. Это означает, что Exception
может быть создан с Error
в качестве причины и может быть обработан приложением. Почему это так?Почему исключение принимает Throwable как параметр конструктора вместо Exception?
Должны ли пользовательские классы Exception
предоставлять только конструкторы, которые принимают Exception
в качестве параметров?
Просто угадывание: может быть, иногда люди все еще пытаются каким-то образом исключить извещение; и, возможно, это проще, если вы используете некоторые из своих собственных исключений специального типа; и поэтому вы допускаете, чтобы такие вещи были обернуты вокруг Throwable. Или, может быть, языковые папы и мамы просто не думали об этом. – GhostCat
JAVADoc syas: * «Ошибка - это подкласс Throwable, который указывает на серьезные проблемы, которые разумное приложение не должно пытаться поймать. Большинство таких ошибок являются ненормальными условиями». * Но это не мешает вам их поймать. – user2004685