2015-07-19 2 views
4

Согласно "Sams Teach Yourself Java в 21 дней" книгиява RuntimeExceptions и ошибки

"Unchecked исключений, которые также называются исключениями во время выполнения ..."

В соответствии с этим фактом, ошибки также исключение исключений, поскольку они являются исключенными исключениями (или это не то, что он говорит?)

Это меня смущает приведенное ниже утверждение.

Исключить время Исключения являются внутренними ошибками в времени выполнения Java .

Если он говорит о ява RuntimeExceptions то, что это ложь, потому что они являются исключениями, которые описываются как «Exception описывает ошибки, вызванные вашей программой и внешними обстоятельствами. Эти ошибки могут быть перехвачены и обработаны с помощью программы.»

Но, с другой стороны, если это относится к ошибкам java, то это внутренние ошибки.

Так это утверждение верно или ложно?

+3

21 день серьезно ?? :-) – ganeshvjy

+1

«Ошибка» вообще не является «Исключением». «Ошибка» распространяется непосредственно из «Throwable» и не проверяется. И ссылки на ** errors ** не следует путать с java-типом 'Error'. – Codebender

ответ

0

Исключение Runtime не требует наличия блока try-catch, а также конструктору или методу не нужен оператор throws.

docs page из оракул несколько хорош объяснение.

6

Лучшим местом для таких объяснений является official documentation. Throwable супер класс, под которым есть Error и Exception. RuntimeException является подклассом под Exception.

  • Error & его подклассы являются бесконтрольно.
  • Exception & проверяется соответствие его подклассов;
    • кроме RuntimeException филиал.

Разница между Error и RuntimeException классов, которые

  • Error не находится под вашим контролем. Обычно это проблема с системой/средой; например OutOfMemoryError. С другой стороны,
  • RuntimeException представляет собой недостаток в логике вашей программы, то есть он находится под вашим контролем. Вы можете исправить это. Например. NullPointerException
+0

Большое спасибо за ответ :) Я знаю иерархию бросаемого, что меня путают с (Исключенные исключения == Исключения для выполнения) часть? Ошибки также являются отмененными исключениями, как я учил! –

+0

Да, вы правы. Оба 'Error' и' RuntimeException' являются исключенными исключениями. – Vineet

+0

Так что «Исключены исключения, также называемые исключениями времени выполнения»? поскольку исключения во время выполнения - это всего лишь подмножество неконтролируемых исключений, а не эквивалентных условий. –

1

Ошибка не должна быть поймана, потому что это вызвано серьезной проблемой. RuntimeException выбрасывается только во время выполнения, и компилятор не жалуется, когда вы не ставите забор кода, который мог бы их выбросить. Проверено исключение должно быть поймано или отправлено исключение на вызывающем уровне

Смежные вопросы