Изменения

Перейти к: навигация, поиск

Обработка ошибок и исключения

369 байт добавлено, 16:25, 23 июня 2013
Обработка исключений
Как и было сказано раньше, определение метода должно содержать список всех проверяемых исключений, которые этот метод может бросить:
void f() throws InterruptedException, IOException { //...
===try-catch-finally===
Код, который может бросить исключения оборачивается в try-блок, после которого идут блоки catch и finally.
}
Сatch-блоки обрабатывают исключения, указанные в качестве аргумента. Тип аргумента должен быть классом, унаследованного от ''Throwable''. Блок catch выполняется, если тип брошенного исключения является наследником типа аргумента и если это исключение не было обработано предыдущими блоками.
Код из блока finally выполнится в любом случае: при нормальном выходе из try, после обработки исключения или при выходе по команде return. Блок finally удобен для закрытия файлов и освобождения любых других ресурсов.
NB: Если JVM выйдет во время выполнения кода из try или catch, то finally блок может не выполниться. Также, например, если поток выполняющий try или catch код прерваностановлен, то блок finally может не выполниться, даже если приложение продолжает работать.
Блок finally удобен для закрытия файлов и освобождения любых других ресурсов. Код в блоке finally должен быть максимально простым: например, если внутри блока finally будет брошено какое-либо исключение или просто встретится оператор return, брошенное в блоке try исключение (если таковое было брошено) будет забыто.
import java.io.IOException;
234
правки

Навигация