Computer >> Máy Tính >  >> Lập trình >> Java

Cuối cùng thì khối có luôn được thực thi trong Java không?

Có, khối cuối cùng luôn được thực thi trừ khi có sự kết thúc chương trình bất thường do sự cố JVM hoặc từ lệnh gọi đến System.exit ().

  • Một khối cuối cùng luôn được thực thi cho dù trường hợp ngoại lệ có xảy ra hay không.
  • Nếu một ngoại lệ xảy ra như đóng tệp hoặc kết nối DB, thì khối cuối cùng sẽ được sử dụng để xóa mã.
  • Chúng tôi không thể nói rằng khối cuối cùng luôn được thực thi vì đôi khi nếu bất kỳ câu lệnh nào như System.exit () hoặc một số mã tương tự được viết vào khối try thì chương trình sẽ tự động kết thúc và khối cuối cùng sẽ không được thực thi trong trường hợp này.
  • Một khối cuối cùng sẽ không thực thi do các điều kiện khác như khi JVM hết bộ nhớ khi quy trình java của chúng tôi bị giết mạnh từ trình quản lý tác vụ hoặc bảng điều khiển khi máy của chúng tôi tắt do mất điện và tình trạng bế tắc trong khối thử của chúng tôi.

Ví dụ 1

public class FinallyBlock {
   public static void main(String args[]){
      try {
         int a=10,b=30;
         int c = b/a;
         System.out.println(c);
      } catch(ArithmeticException ae){
         System.out.println(ae);
      } finally {
         System.out.println("finally block is always executed");
      }
   }
}

Trong ví dụ trên, khối cuối cùng luôn được thực thi nếu ngoại lệ có xảy ra hay không.

Đầu ra

3
finally block is always executed

Ví dụ 2

public class FinallyBlock {
   public static void main(String args[]) {
      try {
         System.out.println("I am in try block");
         System.exit(1);
      } catch(Exception ex){
         ex.printStackTrace();
      } finally {
         System.out.println("I am in finally block");
      }
   }
}

Trong ví dụ trên, khối cuối cùng sẽ không thực thi do điều kiện System.exit (1) trong khối thử.

Đầu ra

I am in try block