обоснование иерархии исключений Java

Я считаю, что иерархия исключений Java сбивает с толку. Throwable делится на Error и Exception , а RuntimeException наследуется от Exception .

  1. Error ] - это непроверенное исключение. Почему тогда Ошибка не наследуется от RuntimeException ?

  2. Exception - это проверенное исключение. RuntimeException - это непроверенное исключение, но оно наследуется от Exception . Разве это не нарушает принцип подстановки Лискова?

Разве не было бы больше смысла, если бы Throwable были разделены на Exception (проверено) и RuntimeException ] (не отмечено), и ошибка будет унаследована от RuntimeExeption ?

6
задан fredoverflow 3 August 2011 в 09:37
поделиться