logo

Java nihayet engellendi

Java nihayet engellendi Bağlantıyı kapatmak vb. gibi önemli kodları yürütmek için kullanılan bir bloktur.

Java nihayet bloğu, bir istisnanın ele alınıp alınmamasına bakılmaksızın her zaman yürütülür. Bu nedenle istisnanın oluşup oluşmadığına bakılmaksızın yazdırılması gereken tüm gerekli ifadeleri içerir.

Nihayet bloğu try-catch bloğunu takip eder.

Nihayet bloğun akış şeması

Java nihayet engellendi

Not: İstisnayı işlemezseniz, programı sonlandırmadan önce JVM, (eğer varsa) nihayet bloğu yürütür.

Java nihayet bloğunu neden kullanmalı?

  • Java'daki sonunda blok ' koymak için kullanılabilir Temizlemek ' Bir dosyayı kapatma, bağlantıyı kapatma vb. gibi kodlar.
  • Yazdırılacak önemli ifadeler son blokta yerleştirilebilir.

Son olarak Java kullanımı

Java nihayet bloğunun kullanılabileceği farklı durumları görelim.

Durum 1: Bir istisna oluşmadığında

Java programının herhangi bir istisna atmadığı ve sonunda bloğun try bloğundan sonra yürütüldüğü aşağıdaki örneğe bakalım.

TestFinallyBlock.java

 class TestFinallyBlock { public static void main(String args[]){ try{ //below code do not throw any exception int data=25/5; System.out.println(data); } //catch won't be executed catch(NullPointerException e){ System.out.println(e); } //executed regardless of exception occurred or not finally { System.out.println('finally block is always executed'); } System.out.println('rest of phe code...'); } } 

Çıktı:

Java nihayet engellendi

Durum 2: Bir istisna oluştuğunda ancak catch bloğu tarafından işlenemediğinde

Aşağıdaki örneği görelim. Burada kod bir istisna atar ancak catch bloğu bunu işleyemez. Buna rağmen, try bloğundan sonra nihayet bloğu yürütülür ve program anormal şekilde sonlandırılır.

TestFinallyBlock1.java

 public class TestFinallyBlock1{ public static void main(String args[]){ try { System.out.println('Inside the try block'); //below code throws divide by zero exception int data=25/0; System.out.println(data); } //cannot handle Arithmetic type exception //can only accept Null Pointer type exception catch(NullPointerException e){ System.out.println(e); } //executes regardless of exception occured or not finally { System.out.println('finally block is always executed'); } System.out.println('rest of the code...'); } } 

Çıktı:

Java nihayet engellendi

Durum 3: Bir istisna oluştuğunda ve catch bloğu tarafından işlendiğinde

Örnek:

Java kodunun bir istisna attığı ve catch bloğunun bu istisnayı işlediği aşağıdaki örneğe bakalım. Daha sonra try-catch bloğundan sonra nihayet bloğu yürütülür. Ayrıca kodun geri kalanı da normal şekilde yürütülür.

TestFinallyBlock2.java

 public class TestFinallyBlock2{ public static void main(String args[]){ try { System.out.println('Inside try block'); //below code throws divide by zero exception int data=25/0; System.out.println(data); } //handles the Arithmetic Exception / Divide by zero exception catch(ArithmeticException e){ System.out.println('Exception handled'); System.out.println(e); } //executes regardless of exception occured or not finally { System.out.println('finally block is always executed'); } System.out.println('rest of the code...'); } } 

Çıktı:

Java nihayet engellendi

Kural: Her try bloğu için sıfır veya daha fazla catch bloğu olabilir, ancak yalnızca bir nihayet bloğu olabilir.

Not: Programdan çıkılırsa (System.exit() çağrılarak veya işlemin iptal edilmesine neden olan önemli bir hataya neden olarak)final bloğu yürütülmeyecektir.