Junior
90
questionbank
Что такое классы Exception в Java и какие их виды существуют?
Ответ от нейросети
sobes.tech AI
Классы Exception в Java представляют собой иерархию классов, используемых для обработки исключительных ситуаций во время выполнения программы. Они позволяют отделить логику обработки ошибок от основного бизнес-логики.
Основные виды исключений в Java:
Checked Exceptions(Проверяемые исключения):- Проверяются компилятором (
javac). - Требуют явной обработки (с помощью
try-catchблоков) или объявления в сигнатуре метода (throws). - Представляют собой восстановимые ошибки, которые программа может попытаться исправить.
- Примеры:
IOException,SQLException,FileNotFoundException,ClassNotFoundException.
// Пример использования checked exception try { java.io.FileReader file = new java.io.FileReader("my_file.txt"); // дальнейшая работа с файлом } catch (java.io.FileNotFoundException e) { // обработка исключения e.printStackTrace(); }- Проверяются компилятором (
Unchecked Exceptions(Непроверяемые исключения):- Не проверяются компилятором.
- Наследуются от
RuntimeException. - Необязательно обрабатывать или объявлять.
- Представляют собой ошибки времени выполнения, которые часто указывают на ошибки в логике программы.
- Примеры:
NullPointerException,ArrayIndexOutOfBoundsException,ArithmeticException,IllegalArgumentException.
// Пример использования unchecked exception int[] numbers = {1, 2, 3}; // Попытка доступа к элементу за пределами массива int number = numbers[5]; // Это вызовет ArrayIndexOutOfBoundsExceptionErrors(Ошибки):- Наследуются от
Error. - Не подлежат восстановлению в нормальных условиях.
- Представляют собой серьезные проблемы, связанные с JVM или средой выполнения, такие как нехватка памяти или ошибки в потоках.
- Не обрабатываются в обычной логике приложения.
- Примеры:
OutOfMemoryError,StackOverflowError,VirtualMachineError.
// Пример ошибки (обычно не обрабатывается) public class StackOverflowExample { public static void recursiveMethod() { recursiveMethod(); // Бесконечная рекурсия } public static void main(String[] args) { recursiveMethod(); // Это вызовет StackOverflowError } }- Наследуются от
Иерархия классов исключений в Java выглядит следующим образом:
Throwable
├── Exception
│ ├── Checked Exceptions (например, IOException)
│ └── RuntimeException (Непроверяемые исключения)
│ └── Unchecked Exceptions (например, NullPointerException)
└── Error
└── JVM Errors (например, OutOfMemoryError)
Обработка исключений осуществляется с помощью блоков try, catch, finally и ключевого слова throw.