Java Özel Durum İşleme (Örneklerle)

Eğitimde, örnekler yardımıyla Java'daki farklı istisna işleme yaklaşımlarını öğreneceğiz.

Son eğitimde Java istisnalarını öğrendik. İstisnaların bir programın yürütülmesini anormal şekilde sonlandırdığını biliyoruz.

Bu nedenle istisnaları ele almak önemlidir. Java'daki istisnaları ele almak için farklı yaklaşımların bir listesi.

  • dene… bloğu yakala
  • sonunda engelle
  • anahtar kelime atar ve atar

1. Java try… catch bloğu

Try-catch bloğu, Java'daki istisnaları işlemek için kullanılır. İşte try… catchbloğun sözdizimi :

 try ( // code ) catch(Exception e) ( // code )

Burada, trybloğun içine bir istisna oluşturabilecek kodu yerleştirdik . Her trybloğun ardından bir catchblok gelir.

Bir istisna meydana geldiğinde, catchblok tarafından yakalanır . catchBlok olmadan kullanılamaz tryblokta.

Örnek: try… catch ile istisna işleme

 class Main ( public static void main(String() args) ( try ( // code that generate exception int divideByZero = 5 / 0; System.out.println("Rest of code in try block"); ) catch (ArithmeticException e) ( System.out.println("ArithmeticException => " + e.getMessage()); ) ) )

Çıktı

 ArithmeticException => / sıfıra göre

Örnekte, bir sayıyı şuna bölmeye çalışıyoruz 0. Burada, bu kod bir istisna oluşturur.

İstisnayı ele almak için kodu bloğun 5 / 0içine koyduk try. Şimdi bir istisna meydana geldiğinde, trybloğun içindeki kodun geri kalanı atlanır.

catchBlok catch bloğunun içinde istisna ve ifadeleri yürütülür yakalar.

Bloktaki ifadelerden hiçbiri trybir istisna oluşturmazsa, catchblok atlanır.

2. Java nihayet bloke

Java'da, finallybir istisna olup olmadığına bakılmaksızın blok her zaman yürütülür.

finallyBlok isteğe bağlıdır. Ve her tryblok için sadece bir finallyblok olabilir.

finallyBloğun temel sözdizimi şöyledir:

 try ( //code ) catch (ExceptionType1 e1) ( // catch block ) finally ( // finally block always executes )

Bir istisna meydana gelirse, finallyblok, bloktan sonra yürütülür try… catch. Aksi takdirde, try bloğundan sonra yürütülür. Her tryblok için yalnızca bir finallyblok olabilir.

Örnek: Nihayet bloğu kullanarak Java Özel Durum İşleme

 class Main ( public static void main(String() args) ( try ( // code that generates exception int divideByZero = 5 / 0; ) catch (ArithmeticException e) ( System.out.println("ArithmeticException => " + e.getMessage()); ) finally ( System.out.println("This is the finally block"); ) ) )

Çıktı

 ArithmeticException => / sıfıra göre Bu son bloktur

Yukarıdaki örnekte, bloğun içindeki bir sayıyı 0'atry bölüyoruz. Burada, bu kod bir ArithmeticException.

İstisna, catchblok tarafından yakalanır . Ve sonra finallyblok yürütülür.

Not : finallyBloğu kullanmak iyi bir uygulamadır . Bunun nedeni, aşağıdaki gibi önemli temizleme kodlarını içerebilmesidir:

  • Return, Continue veya Break ile yanlışlıkla atlanabilecek kod
  • bir dosyayı veya bağlantıyı kapatmak

3. Java anahtar kelime atar ve atar

Java throwanahtar sözcüğü açıkça tek bir istisna atmak için kullanılır.

Bir throwistisna olduğumuzda , programın akışı trybloktan bloğa hareket eder catch.

Örnek: Java atışı kullanarak istisna işleme

 class Main ( public static void divideByZero() ( // throw an exception throw new ArithmeticException("Trying to divide by 0"); ) public static void main(String() args) ( divideByZero(); ) )

Çıktı

 "Main" iş parçacığında istisna java.lang.ArithmeticException: Main.divideByZero'da (Main.java:5) Main.main'de (Main.java:9) 0'a bölmeye çalışılıyor

Yukarıdaki örnekte, anahtar kelimeyi ArithmeticExceptionkullanarak açıkça atıyoruz throw.

Benzer şekilde, throwsanahtar kelime, yöntem içinde ortaya çıkabilecek istisna türlerini bildirmek için kullanılır. Yöntem bildiriminde kullanılır.

Örnek: Java anahtar kelime atar

 import java.io.*; class Main ( // declareing the type of exception public static void findFile() throws IOException ( // code that may generate IOException File newFile = new File("test.txt"); FileInputStream stream = new FileInputStream(newFile); ) public static void main(String() args) ( try ( findFile(); ) catch (IOException e) ( System.out.println(e); ) ) )

Çıktı

 java.io.FileNotFoundException: test.txt (Sistem belirtilen dosyayı bulamıyor)

Bu programı çalıştırdığımızda, test.txt dosyası yoksa, sınıfı genişleten FileInputStreambir atar .FileNotFoundExceptionIOException

findFile()Yöntem belirtir IOExceptionatılabilir. main()Yöntem bu yöntemi çağırır ve o atılır eğer istisna işler.

Bir yöntem istisnaları işlemezse, onun içinde meydana gelebilecek istisnaların türü throwsmaddede belirtilmelidir .

Daha fazla bilgi edinmek için Java fırlatma ve fırlatma sayfasını ziyaret edin.

Ilginç makaleler...