Java'da Catch'i Deneyin: İstisna İşleme Örneği

İçindekiler:

Anonim

Java'da İstisna Nedir?

Java'daki istisna , program talimatlarının yürütülmesini kesintiye uğratan ve program yürütmenin normal akışını bozan bir olaydır. Bir yöntem içinde meydana gelen bir hata olayı bilgisini saran ve çalışma zamanı sistemine iletilen bir nesnedir. Java'da istisnalar esas olarak farklı hata durumlarını belirtmek için kullanılır.

Bu eğitimde öğreneceksiniz-

  • İstisna nedir?
  • Neden İstisna'ya ihtiyacımız var?
  • İstisnayla Nasıl Başa Çıkılır
  • Catch Block'u Deneyin
  • Java İstisna sınıfı Hiyerarşisi
  • Java Nihayet Engelleniyor

İki tür hata vardır:

  1. Zaman hatalarını derleme
  2. Çalışma zamanı hataları

Derleme zamanı hataları tekrar iki türe ayrılabilir:

  • Sözdizimi Hataları
  • Anlamsal Hatalar

Sözdizimi Hataları Örneği:

Beyan etmek yerine

int a;yanlışlıkla in a;hangi derleyicinin hata vereceğini beyan ettiniz .

Örnek: Bir değişken tanımladınız

int a;ve bazı kod satırlarından sonra tekrar bir tamsayı olarak tanımlıyorsunuz int a;. Kodu derlerken tüm bu hatalar vurgulanır.

Çalışma Zamanı Hataları Örneği

Bir Çalışma Zamanı hatası, İstisnalar hatası olarak adlandırılır . Normal program yürütme akışını kesintiye uğratan herhangi bir olaydır.

İstisnalara örnek, aritmetik istisna, Nullpointer istisnası, Sıfır istisnasına böl, vb.

Java'daki istisnalar, geliştiricilerin kontrolü dışında olan bir durumdur.

Videoya erişilemiyorsa burayı tıklayın

Neden İstisna'ya ihtiyacımız var?

Sunucuya erişmek için bir program kodladığınızı varsayalım. Kodu geliştirirken her şey yolunda gitti.

Gerçek üretim çalışması sırasında sunucu kapalıdır. Programınız ona erişmeye çalıştığında, bir istisna ortaya çıkar.

İstisnayla Nasıl Başa Çıkılır

Şimdiye kadar gördük, istisna geliştiricinin kontrolü dışındadır. Ancak çevre sorunları nedeniyle kod hatalarınızı suçlamak bir çözüm değildir. İstisnai durumlarla ilgilenen Sağlam bir Programlamaya ihtiyacınız var. Bu tür bir kod, İstisna İşleyicisi olarak bilinir .

Örneğimizde, iyi bir istisna işleme, sunucu kapalıyken yedekleme sunucusuna bağlanmak olacaktır.

Bunu uygulamak için, sunucuya bağlanmak üzere kodunuzu girin (Geleneksel if ve else koşullarını kullanarak).

Sunucunun kapalı olup olmadığını kontrol edeceksiniz. Varsa, yedekleme sunucusuna bağlanmak için kodu yazın.

"İf" ve "else" döngüsünü kullanan bu tür bir kod organizasyonu, kodunuzun ele alınması gereken birden fazla java istisnası olduğunda etkili değildir.

class connect{if(Server Up){// code to connect to server}else{// code to connect to BACKUP server}}

Catch Block'u Deneyin

Java, dahili bir olağanüstü kullanım sağlar.

  1. Normal kod bir TRY bloğuna gider .
  2. İstisna işleme kodu CATCH bloğuna gider

Örneğimizde, TRY bloğu sunucuya bağlanmak için kod içerecektir. CATCH bloğu, yedekleme sunucusuna bağlanmak için kod içerecektir.

Sunucunun açık olması durumunda, CATCH bloğundaki kod yok sayılacaktır. Sunucunun çalışmaması durumunda bir istisna oluşur ve catch bloğundaki kod çalıştırılır.

Yani, Java'da istisna bu şekilde ele alınır.

Try & catch kullanmak için sözdizimi

try{statement(s)}catch (exceptiontype name){statement(s)}

Misal

Adım 1) Aşağıdaki kodu bir düzenleyiciye kopyalayın

class JavaException {public static void main(String args[]){int d = 0;int n = 20;int fraction = n/d;System.out.println("End Of Main");}}

Adım 2) Dosyayı kaydedin ve kodu derleyin. Programı, java JavaException komutunu kullanarak çalıştırın.

Adım 3) Bir Aritmetik İstisna - sıfıra bölme, 5 numaralı satır için aşağıda gösterildiği gibidir ve 6 numaralı satır asla çalıştırılmaz

Adım 4) Şimdi dene ve yakala'nın bu istisnayı halletmemize nasıl yardımcı olacağını inceleyelim. Kod satırına neden olan istisnayı bir try bloğuna ve ardından bir catch bloğuna koyacağız . Aşağıdaki kodu düzenleyiciye kopyalayın.

class JavaException {public static void main(String args[]) {int d = 0;int n = 20;try {int fraction = n / d;System.out.println("This line will not be Executed");} catch (ArithmeticException e) {System.out.println("In the catch Block due to Exception = " + e);}System.out.println("End Of Main");}}

Adım 5) Kodu Kaydedin, Derleyin ve Çalıştırın.Aşağıdaki çıktıyı alacaksınız

Gözlemlediğiniz gibi, istisna ele alınır ve son kod satırı da çalıştırılır. Ayrıca, Hat # 7'nin çalıştırılmayacağını unutmayın çünkü bir istisna ortaya çıkar çıkmaz kontrol akışı catch bloğuna atlar.

Not: AritmeticException Nesnesi "e", meydana gelen istisna hakkında bilgi taşır ve bu, kurtarma eylemlerinin gerçekleştirilmesinde yararlı olabilir.

Java İstisna sınıfı Hiyerarşisi

Bir catch deyimi çalıştırıldıktan sonra diğerleri atlanır ve çalıştırma dene / yakala bloğundan sonra devam eder. Yuvalanmış yakalama blokları, İstisna hiyerarşisini izler.
  • Java'daki tüm istisna sınıfları 'Throwable' sınıfını genişletir. Throwable'ın iki alt sınıfı vardır: Hata ve İstisna
  • Error sınıfı, programımız tarafından normal koşullar altında meydana gelmesi beklenmeyen istisnayı veya sorunları tanımlar, örneğin Bellek hatası, Donanım hatası, JVM hatası, vb.
  • Exception sınıfı, programımız tarafından ele alınabilecek istisnaları temsil eder ve programımız try ve catch bloğu kullanılarak bu istisnadan kurtarılabilir.
  • Runtime istisnası, istisna sınıfının bir alt sınıfıdır. Bu türlerin İstisnası, çalışma zamanında meydana gelen ve derleme zamanında izlenemeyen istisnayı temsil eder. Aynı mükemmel bir örnek, sıfır istisnası veya boş işaretçi istisnası vb.
  • Giriş ve çıkış işlemleri sırasında IO istisnası oluşturulur
  • Java'da kesintiye uğrayan istisnalar, çoklu iş parçacığı sırasında oluşturulur.
Örnek: Try and catch bloklarının yuvalanmasını anlamak için

Adım 1) Aşağıdaki kodu bir düzenleyiciye kopyalayın.

class JavaException {public static void main(String args[]) {try {int d = 1;int n = 20;int fraction = n / d;int g[] = {1};g[20] = 100;}/*catch(Exception e){System.out.println("In the catch block due to Exception = "+e);}*/catch (ArithmeticException e) {System.out.println("In the catch block due to Exception = " + e);} catch (ArrayIndexOutOfBoundsException e) {System.out.println("In the catch block due to Exception = " + e);}System.out.println("End Of Main");}}

Adım 2) Dosyayı kaydedin ve kodu derleyin. Programı java JavaException komutunu kullanarak çalıştırın .

Adım 3) Bir ArrayIndexOutOfBoundsException oluşturulur. İnt d değerini 0 olarak değiştirin. Kodu Kaydedin, Derleyin ve Çalıştırın.

Adım 4 ) Bir ArithmeticException oluşturulmalıdır.

Adım 5) 10. satırdan 12. satıra kadar olan açıklamayı kaldırın. Kodu Kaydedin, Derleyin ve Çalıştırın.

Adım 6) Derleme Hatası? Bunun nedeni, Exception'ın ArithmeticException Exception'ın temel sınıfı olmasıdır. ArithmeticException tarafından ortaya çıkan herhangi bir İstisna, Exception sınıfı tarafından da işlenebilir. Bu nedenle, ArithmeticException'ın yakalama bloğu, onu gereksiz kılan hiçbir zaman çalıştırılma şansı bulamayacaktır. Dolayısıyla derleme hatası.

Java Nihayet Engelleniyor

Nihai blok, try bloğunda ortaya çıkan bir istisnadan bağımsız olarak yürütülür . Öyle isteğe bağlı bir try bloğu ile kullanmak.

 try {statement(s)} catch (ExceptiontType name) {statement(s)} finally {statement(s)}

Try bloğunda bir istisna ortaya çıkarsa, catch bloğu çalıştırıldıktan sonra son olarak blok yürütülür.

Misal

Adım 1) Aşağıdaki kodu bir düzenleyiciye kopyalayın.

class JavaException {public static void main(String args[]){try{int d = 0;int n =20;int fraction = n/d;}catch(ArithmeticException e){System.out.println("In the catch block due to Exception = "+e);}finally{System.out.println("Inside the finally block");}}}

Adım 2) Kodu Kaydedin, Derleyin ve Çalıştırın.

Adım 3) Beklenen çıktı. Son olarak, bir istisna ortaya çıksa bile blok yürütülür.

Adım 4) d = 1 değişkeninin değerini değiştirin. Kodu kaydedin, derleyin ve çalıştırın ve çıktıyı gözlemleyin.

Özet :

  • Bir durum bir çalıştırma hatası olan programın çalıştırılması sırasında program execution.Disruption normal akışını keser hata veya durum olarak adlandırılır.
  • Hatalar iki kategoriye ayrılır
    • Derleme zamanı hataları - Sözdizimi hataları, Anlamsal hatalar
    • Çalışma zamanı hataları - İstisna
  • Bir sağlam program tüm özel durumları işlemek gerekir ve program yürütme normal akışına devam edin. Java, yerleşik bir olağanüstü işleme yöntemi sağlar
  • İstisna İşleyici, bir istisnayı işleyen bir kod kümesidir . İstisnalar, dene ve yakala kullanılarak Java'da ele alınabilir.
  • Bloğu dene : Normal kod bu bloğa gider.
  • Yakalama bloğu : Normal kodda hata varsa bu bloğa girecektir.