Ответ
Исключение (Exception) в Java — это событие, возникающее во время выполнения программы, которое нарушает нормальный поток инструкций. Механизм обработки исключений позволяет управлять ошибками и поддерживать стабильность приложения.
Типы исключений
- Checked Exceptions (проверяемые) — исключения, которые компилятор обязывает обрабатывать или объявлять в сигнатуре метода (
throws). Возникают в предсказуемых ситуациях (например, ввод-вывод).- Пример:
IOException,SQLException.
- Пример:
- Unchecked Exceptions (непроверяемые / RuntimeException) — исключения, которые не требуется объявлять. Часто указывают на ошибки программирования.
- Пример:
NullPointerException,ArrayIndexOutOfBoundsException,IllegalArgumentException.
- Пример:
- Errors — критические системные ошибки, которые приложение обычно не должно пытаться обрабатывать.
- Пример:
OutOfMemoryError,StackOverflowError.
- Пример:
Блоки обработки исключений
try {
// Код, который может выбросить исключение
FileInputStream file = new FileInputStream("nonexistent.txt");
} catch (FileNotFoundException e) {
// Обработка конкретного исключения
System.err.println("Файл не найден: " + e.getMessage());
} catch (IOException e) {
// Обработка более общего исключения
System.err.println("Ошибка ввода-вывода");
} finally {
// Этот блок выполняется всегда, даже если было исключение
// Используется для освобождения ресурсов (закрытие файлов, соединений)
System.out.println("Завершение операции с файлом.");
}
Лучшие практики
- Используйте конкретные типы исключений в
catch, а не общийException. - Не игнорируйте исключения пустыми
catch-блоками. - Логируйте исключения с помощью логгеров (SLF4J, Log4j).
- Создавайте собственные исключения, наследуясь от
Exception(для проверяемых) илиRuntimeException. - Используйте try-with-resources для автоматического закрытия ресурсов, реализующих
AutoCloseable.try (FileReader fr = new FileReader("file.txt"); BufferedReader br = new BufferedReader(fr)) { // Использование ресурсов } // Ресурсы закроются автоматически