Понимание проверенных и непроверенных исключений в JavaJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Понимание проверенных и непроверенных исключений в Java

Сообщение Anonymous »

Джошуа Блох в книге "Эффективная Java" сказал, что


Используйте проверенные исключения для
восстанавливаемых условий и исключения во время выполнения
для ошибок программирования
(пункт 58 во 2-м издании)


Давайте посмотрим, понимаю ли я это правильно.

Вот как я понимаю проверенное исключение:

Код: Выделить всё

try{
String userInput = //read in user input
Long id = Long.parseLong(userInput);
}catch(NumberFormatException e){
id = 0; //recover the situation by setting the id to 0
}
1. Считается ли приведенное выше проверенным исключением?

2. Является ли RuntimeException непроверяемым исключением?

Вот как я понимаю непроверяемое исключение:

Код: Выделить всё

try{
File file = new File("my/file/path");
FileInputStream fis = new FileInputStream(file);
}catch(FileNotFoundException e){

//3. What should I do here?
//Should I "throw new FileNotFoundException("File not found");"?
//Should I log?
//Or should I System.exit(0);?
}
4. Теперь, не может ли приведенный выше код также быть проверенным исключением? Можно ли попытаться исправить ситуацию вот так? Могу ли я? (Примечание: мой третий вопрос находится в подсказке выше)

Код: Выделить всё

try{
String filePath = //read in from user input file path
File file = new File(filePath);
FileInputStream fis = new FileInputStream(file);
}catch(FileNotFoundException e){
//Kindly prompt the user an error message
//Somehow ask the user to re-enter the file path.
}
5. Почему люди это делают?

Код: Выделить всё

public void someMethod throws Exception{

}
Почему исключение всплывает? Не лучше ли обработать ошибку раньше? Зачем пузыриться?

6. Должен ли я выделить точное исключение или замаскировать его с помощью Exception?

Ниже приведены мои показания

В Java, когда мне следует создавать проверяемое исключение, а когда это должно быть исключение во время выполнения?

Когда выбирать проверенные и непроверяемые исключения

Подробнее здесь: https://stackoverflow.com/questions/611 ... ns-in-java
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»