Исключение в Java — это событие, которое возникает во время выполнения программы и нарушает нормальный ход её выполнения. Исключения могут быть вызваны различными причинами, такими как попытка деления на ноль, доступ к несуществующему элементу массива, неправильный ввод данных и т.д. В Java исключения являются объектами, которые представляют собой конкретные ошибки, произошедшие во время выполнения программы.
Базовым классом для всех исключений является класс Throwable. От него уже наследуются два класса: Error и Exception.
Исключения в Java делятся на три основные категории:
- Checked Exception (Проверяемые исключения): Эти исключения проверяются компилятором, и программист обязан обработать их либо с помощью блока try-catch, либо указав их в сигнатуре метода с ключевым словом throws. Примеры: IOException, SQLException.
- Unchecked Exception (Непроверяемые исключения): Эти исключения не проверяются компилятором, и их обработка полностью на усмотрение программиста. Они обычно происходят из-за ошибок в логике программы, другими словами следствием ошибок разработчика, например, неверное преобразование типов или выход за пределы массива. Базовым классом для непроверяемых исключений является RuntimeException. Примеры: NullPointerException, ArrayIndexOutOfBoundsException.
- Error (Ошибки): Это серьёзные проблемы, которые обычно связаны с окружением выполнения программы, например, недостаток памяти (OutOfMemoryError). Эти ошибки, как правило, не требуют обработки, так как программа обычно не может восстановиться после них.
Как обрабатывать исключения в Java?
Исключения в Java обрабатываются с помощью блоков try, catch, finally, и throw.
1. Блок try
В блоке try размещается код, который может вызвать исключение. Если в этом блоке возникает исключение, выполнение программы переходит в соответствующий блок catch.
2. Блок catch
Блок catch используется для перехвата и обработки исключений. Вы можете иметь несколько блоков catch для обработки различных типов исключений.
3. Блок finally
Блок finally выполняется в любом случае, независимо от того, было ли выброшено исключение или нет. Он обычно используется для освобождения ресурсов, например, закрытия файлов или сетевых соединений.
4. Оператор throw
Оператор throw используется для выбрасывания исключения вручную.
5. Оператор throws
Если метод может выбросить проверяемое исключение, это должно быть указано в его сигнатуре с использованием throws.
Пример обработки исключений
Вывод:
- Исключения позволяют управлять ошибками во время выполнения программы.
- Обработка исключений с помощью try-catch-finally блоков позволяет предотвратить завершение программы в случае ошибок.
- Блок finally гарантирует выполнение кода, который должен быть выполнен независимо от того, произошло ли исключение или нет.
- Вы можете выбрасывать свои собственные исключения с помощью throw и указывать, какие исключения могут быть выброшены методом с помощью throws.
Не забудьте подписаться на канал, чтобы не пропустить полезную информацию: QA Helper - справочник тестировщика
Пишите в комментариях какой пункт было бы интересно рассмотреть более подробно.
Также будет интересно почитать: Вопросы которые задают на собеседовании тестировщикам