Я считаю, что иерархия исключений Java сбивает с толку. Throwable
делится на Error
и Exception
, а RuntimeException
наследуется от Exception
.
Error
] - это непроверенное исключение. Почему тогда Ошибка
не наследуется от RuntimeException
?
Exception
- это проверенное исключение. RuntimeException
- это непроверенное исключение, но оно наследуется от Exception
. Разве это не нарушает принцип подстановки Лискова?
Разве не было бы больше смысла, если бы Throwable
были разделены на Exception
(проверено) и RuntimeException
] (не отмечено), и ошибка
будет унаследована от RuntimeExeption
?