Ответ
Компилятор Java выдаст ошибку. Проверяемые исключения (checked exceptions) должны быть либо обработаны в блоке try-catch, либо объявлены в сигнатуре метода с помощью throws.
Пример ошибки компиляции:
import java.io.*;
public void readFile() {
FileReader file = new FileReader("test.txt"); // ОШИБКА КОМПИЛЯЦИИ
}
Сообщение об ошибке:
unreported exception java.io.FileNotFoundException;
must be caught or declared to be thrown
Способы исправления:
- Обработка через
try-catch:public void readFile() { try { FileReader file = new FileReader("test.txt"); } catch (FileNotFoundException e) { // Обработка исключения e.printStackTrace(); } } - Объявление в сигнатуре метода (проброс):
public void readFile() throws FileNotFoundException { FileReader file = new FileReader("test.txt"); }
Что такое проверяемые исключения? Это классы, унаследованные от Exception, но не от RuntimeException. Примеры: IOException, SQLException, ClassNotFoundException. Непроверяемые исключения (RuntimeException и его наследники, например, NullPointerException) не требуют обязательной обработки на этапе компиляции.