Какие проверяемые исключения (checked exceptions) вы знаете в Java?

«Какие проверяемые исключения (checked exceptions) вы знаете в Java?» — вопрос из категории Java Core, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Проверяемые исключения (checked exceptions) в Java — это исключения, которые компилятор обязывает либо обработать в блоке try-catch, либо объявить в сигнатуре метода с помощью throws. Они наследуются от класса java.lang.Exception, но не от RuntimeException.

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

  • IOException — общий класс для ошибок ввода-вывода.
  • FileNotFoundException — частный случай IOException, когда файл не найден.
  • SQLException — исключения, связанные с работой с базой данных.
  • ClassNotFoundException — попытка загрузить класс по строковому имени, который не найден.
  • ParseException — ошибка при разборе (парсинге) строки, например, в SimpleDateFormat.

Пример обработки:

import java.io.FileReader;
import java.io.FileNotFoundException;

public class Example {
    public void readFile() {
        try {
            FileReader reader = new FileReader("file.txt");
        } catch (FileNotFoundException e) {
            System.err.println("Файл не найден: " + e.getMessage());
        }
    }
}

Почему они существуют? Они обеспечивают безопасность типов на этапе компиляции, заставляя разработчика явно предусмотреть обработку ошибок, которые могут возникнуть во время выполнения (например, отсутствие файла или проблемы с сетью).