происходят ли исключения во время выполнения? - PullRequest
5 голосов
/ 21 июня 2011

Я запутался с именованием исключения времени выполнения Java. Эти проверенные исключения, такие как SQLexception, также происходят во время выполнения программы. Почему только те непроверенные, которые называются исключениями во время выполнения? Вероятно, у меня неправильное понимание "времени выполнения".

Спасибо за любые советы.

Ответы [ 2 ]

5 голосов
/ 21 июня 2011

Я могу понять ваше замешательство. Все исключения происходят во время выполнения!

Единственная причина, по которой я могу придумать такое название класса, заключается в том, что он разъясняет, что это исключение, с которым не нужно иметь дело во время компиляции .

В отличие от всех других так называемых «проверенных» исключений, RuntimeExceptions не требует от программиста объявления исключения, генерируемого с помощью предложения throws.

2 голосов
/ 21 июня 2011

RuntimeException является подклассом java.lang.Exception.RunTimeExceptions почти всегда являются результатом программной ошибки или / и не встречаются инварианты (пустые значения передаются, когда они не должны), поэтому вам не нужно ловить их как java.lang.Exception (то есть проверяемые исключения).Вы не можете их поймать, потому что система Run Time мало что может сделать для восстановления.

Я думаю, что фраза runtime просто означает, что они происходят, когда программа запущена (очевидно !!) и принципиально компиляторне заставляет проверки быть встроенными в код, как с Проверенными Исключениями .Я думаю, что это пример того, как трудно назвать класс соответствующим образом, например, я думаю, что они могут иметь исключения по умолчанию и называть это исключением.Затем подклассифицирует его для предоставления CheckedException - все называют java.lang.Exception Checked Exception, но это не ясно из имени класса.Но они не сделали, и у нас есть:

> java.lang.Exception is referred to as "Checked Exception" 
> java.lang.RuntimeException is referred to as "Unchecked Exception"
...