2013-03-17 2 views
2

Я сделал метод, который выдает исключение(). Это приводит к ошибке - Необработанное исключение типа ИсключениеОшибка - Необработанный тип исключения Исключение?

public void temp(){ 
    throw new Exception(); 
} 

Однако, если я заменю Exception с любым другим Exception, таких как NullPointerException, я не получаю сообщение об ошибке. Почему это происходит ?

+1

http://docs.oracle.com/javase/tutorial/essential/exceptions/ –

+0

Пожалуйста, скажите мне, почему вы проголосовали за меня: - | – Korg

+1

Мое предположение - это то, что вождь думает, что; проверенные и непроверенные исключения - это базовое кодирование Java. Вы должны иметь возможность искать ответ. –

ответ

6

В этом разница между «проверенным» исключением и «непроверенным» исключением. Все, что расширяет RuntimeException, включая NullPointerException, «не проверено», что означает, что им не нужно явно обращаться с помощью try/catch или объявлять, что метод их бросает.

Проверяемые исключения - это те, которые не распространяются на RuntimeException, а - обрабатываются либо методом try/catch, либо путем объявления вашего метода бросить его. Поэтому ваш код не скомпилируется, потому что вы не обрабатываете его в любом случае.

+0

Спасибо. Ссылка на диаграмму иерархии классов - http://docs.oracle.com/javase/tutorial/essential/exceptions/throwing.html – Korg

1

Я столкнулся со странной ситуацией с этой ошибкой. А именно, мой Eclipse построил код без предупреждений, но для двух моих коллег компилятор дал эту ошибку. Нам потребовалось некоторое время, чтобы понять, в основном потому, что есть простое средство для использования RuntimeException. Но, наконец, фокус в том, что их Eclipse был настроен для Java 1.6, в то время как мой был настроен на 1,7.

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

  • Нет связанных вопросов^_^