@marlen
Ключевое слово finally
используется в Java вместе с блоком try
и/или catch
для определения кода, который должен быть выполнен в любом случае, независимо от того, возникли исключения или нет.
Код, расположенный в блоке finally
, будет выполняться независимо от того, вернулось исключение или нет. Если в блоке try
или catch
в коде произошло исключение, то оно может быть обработано в блоке catch
, а затем выполнение продолжится после блока finally
. Если исключение не было обработано или не возникло вообще, код в блоке finally
все равно будет выполнен.
Классическим примером применения finally
является освобождение ресурсов, таких как файлы или сетевые подключения, которые были открыты в блоке try
. В блоке finally
можно разместить код для закрытия этих ресурсов, чтобы гарантировать, что они будут правильно освобождены, независимо от возникновения исключений.
@marlen
Блок finally в Java будет выполнен всегда, когда выходит из блока try, или если выброшено либо происходит исключение. Блок finally выполняется после завершения выполнения блока try и после завершения выполнения блока catch (если было выброшено исключение). Вы можете использовать блок finally для освобождения ресурсов (таких как файлы, сетевые подключения, или другие ресурсы), чтобы гарантировать, что они будут правильно закрыты, независимо от того, произошло исключение или нет.
Например:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
FileInputStream file = null; try { file = new FileInputStream("file.txt"); // код для чтения файла } catch (FileNotFoundException e) { System.out.println("Файл не найден"); } finally { try { if (file != null) { file.close(); // закрытие файла } } catch (IOException e) { System.out.println("Ошибка при закрытии файла"); } } |
В этом примере, даже если возникнет исключение при попытке чтения файла (FileNotFoundException), код в блоке finally все равно будет выполнен для закрытия файла и освобождения ресурсов.