Junior
102
questionbank
Что такое исключение (Exception) в Java?
Ответ от нейросети
sobes.tech AI
Исключение — это событие, которое нарушает нормальный поток выполнения программы. Оно представляет собой ошибку или непредвиденную ситуацию.
В Java исключения представлены иерархией классов, начинающейся с Throwable. Она разделяется на:
Error: Представляет серьезные проблемы, от которых обычно нельзя оправиться (например, нехватка памятиOutOfMemoryError).Exception: Представляет условия, от которых программа может попытаться оправиться. Делится на:- Checked Exceptions: Исключения, которые должны быть обработаны или объявлены в сигнатуре метода. Компилятор проверяет их наличие (например,
IOException,FileNotFoundException). - Unchecked Exceptions (Runtime Exceptions): Исключения, которые не нужно обрабатывать или объявлять явно. Они обычно указывают на ошибки в логике программы (например,
NullPointerException,ArrayIndexOutOfBoundsException,ArithmeticException).
- Checked Exceptions: Исключения, которые должны быть обработаны или объявлены в сигнатуре метода. Компилятор проверяет их наличие (например,
Механизм обработки исключений включает:
try: Блок кода, который может выбросить исключение.catch: Блок, который перехватывает и обрабатывает определенный тип исключения.finally: Блок, который выполняется всегда, независимо от того, было ли выброшено исключение или нет. Используется для освобождения ресурсов.throw: Используется для явного выброса исключения.throws: Объявляется в сигнатуре метода, чтобы указать, что метод может выбросить определенное исключение.
Пример обработки исключения:
// Пример обработки Checked Exception
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class ExceptionHandlingExample {
public static void main(String[] args) {
try {
readFile("nonexistent_file.txt");
} catch (FileNotFoundException e) {
// Обработка исключения
System.err.println("Ошибка: файл не найден.");
e.printStackTrace(); // Вывод информации об исключении
} finally {
// Этот блок выполнится всегда
System.out.println("Завершение попытки чтения файла.");
}
// Пример Unchecked Exception (ArithmeticException)
try {
int result = 10 / 0; // Попытка деления на ноль
} catch (ArithmeticException e) {
System.err.println("Ошибка деления на ноль!");
}
}
// Метод, который может выбросить Checked Exception
public static void readFile(String filename) throws FileNotFoundException {
File file = new File(filename);
Scanner scanner = new Scanner(file);
// Чтение файла...
scanner.close();
}
}