Khối finally
trong xử lý ngoại lệ trong Java đóng vai trò quan trọng trong việc đảm bảo các hành động nhất định luôn được thực thi, ngay cả khi một ngoại lệ (exception) xảy ra.
finally
Khối finally
luôn đi kèm với khối try-catch
. Khi có ngoại lệ xảy ra hoặc không xảy ra, các câu lệnh trong finally
sẽ luôn được thực hiện sau khối try
và catch
. Điều này giúp đảm bảo rằng những tài nguyên như file, kết nối mạng, hay kết nối cơ sở dữ liệu được đóng đúng cách, ngay cả khi chương trình gặp lỗi.
try { // Các câu lệnh có khả năng gây ra ngoại lệ } catch (ExceptionType1 e1) { // Xử lý ngoại lệ kiểu ExceptionType1 } catch (ExceptionType2 e2) { // Xử lý ngoại lệ kiểu ExceptionType2 } finally { // Các câu lệnh trong khối này luôn được thực hiện }
public class FinallyExample { public static void main(String[] args) { try { int data = 100 / 0; // Phép chia gây ra ngoại lệ ArithmeticException } catch (ArithmeticException e) { System.out.println("Caught an ArithmeticException: " + e.getMessage()); } finally { System.out.println("Khối finally luôn được thực hiện."); } } }
Trong ví dụ trên, phép chia 100 / 0
gây ra ngoại lệ ArithmeticException
, khối catch
sẽ bắt lỗi và in ra thông báo. Tuy nhiên, khối finally
vẫn sẽ được thực thi, in ra dòng “Khối finally luôn được thực hiện.”
finally
finally
đảm bảo rằng các tài nguyên như file, kết nối cơ sở dữ liệu, hay bộ nhớ luôn được giải phóng sau khi sử dụng.finally
.finally
Trong hầu hết các trường hợp, khối finally
luôn được thực thi, trừ khi:
System.exit()
.Tóm lại, khối finally
là một công cụ hữu ích trong Java để đảm bảo rằng các hành động quan trọng luôn được thực hiện, bất kể ngoại lệ có xảy ra hay không. Điều này giúp chương trình trở nên an toàn hơn và dễ quản lý hơn trong các tình huống cần xử lý ngoại lệ phức tạp.