Механизм исключений в Java работает через использование блоков try-catch. 1 Блок try содержит код, который может вызвать исключение, а блок catch — код, который обрабатывает это исключение. 1
Процесс работы:
- При исполнении программы исключение генерируется виртуальной машиной Java (JVM) или вручную, с помощью оператора throw. 4 При этом в памяти создаётся объект исключения и выполнение основного кода программы прерывается, а обработчик исключений JVM пытается найти способ обработать исключение. 4
- При возбуждении исключения в блоке try обработчик исключения ищется в следующем за ним блоке catch. 4 Если в catch есть обработчик данного типа исключения — управление переходит к нему. 4 Если нет, то JVM ищет обработчик этого типа исключения в цепочке вызовов методов до тех пор, пока не будет найден подходящий catch. 4
- После выполнения блока catch управление передаётся в необязательный блок finally. 4
- В случае, если подходящий блок catch не найден, JVM останавливает выполнение программы и выводит стек вызовов методов (stack trace), выполнив перед этим код блока finally при его наличии. 4