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.








