İstisna İşleme Java

İstisna Nedir? Java?

İstisna Java 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çerisinde meydana gelen bir hata olayı bilgisini saran ve çalışma zamanı sistemine aktarılan bir nesnedir. İçinde Javaistisnalar esas olarak farklı türdeki hata koşullarını belirtmek için kullanılır.

İki tür hata vardır:

  1. Derleme zamanı hataları
  2. Çalışma zamanı hataları

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

  • Sözdizimi Hataları
  • Anlamsal Hatalar

Söz Dizimi Hataları Örneği:

Bildirmek yerine int a; yanlışlıkla öyle ilan ettin in a; hangi derleyicinin hata vereceği.

Örnek: Bir değişken bildirdiniz int a; ve bazı kod satırlarından sonra tekrar bir tamsayıyı şu şekilde bildirirsiniz: int a;Kodu derlediğinizde tüm bu hatalar vurgulanır.

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

Çalışma zamanı hatasına denir İstisnalar hata. Program yürütmenin normal akışını kesen herhangi bir olaydır. İstisnalara örnek olarak aritmetik istisna, Nullpointer istisnası, Sıfıra bölme istisnası vb. verilebilir. İstisnalar Java geliştiricilerin kontrolü dışında olan bir şeydir.

Tıkla okuyun videoya erişilemiyorsa

Neden İstisnaya ihtiyacımız var?

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

Java İstisna işleme

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.

Java İstisna işleme

İstisna Nasıl Ele Alınır?

Şu ana kadar istisnaların geliştiricinin kontrolü dışında olduğunu gördük. Ancak kod başarısızlığınızı çevresel sorunlara bağlamak bir çözüm değildir. İstisnai durumlarla ilgilenen Sağlam bir Programlamaya ihtiyacınız var. Bu tür kod şu şekilde bilinir: İstisna İşleyicisi.

Örneğimizde, sunucu kapalıyken yedekleme sunucusuna bağlanmak iyi bir istisna yönetimi olacaktır.

Java İstisna işleme

Bunu uygulamak için, sunucuya bağlanmak için kodunuzu girin (Geleneksel if ve else koşullarını kullanarak). Sunucunun kapalı olup olmadığını kontrol edeceksiniz. Kapalıysa, yedek sunucuya bağlanmak için kodu yazın. Kodunuzda birden fazla "if" ve "else" döngüsü kullanıldığında, bu tür bir kod organizasyonu etkili değildir. java istisnaları işlemek için.

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

Catch Block'u deneyin

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

  1. Normal kod bir TRY engellemek.
  2. İstisna işleme kodu şuraya gider: CATCH blok

Catch Block'u deneyin

Örneğimizde, TRY bloğu sunucuya bağlanmak için gereken kodu içerecektir. CATCH bloğu yedek sunucuya bağlanmak için gereken kodu içerecektir. Sunucu çalışır durumdaysa, CATCH bloğundaki kod göz ardı edilecektir. Sunucu kapalıysa, bir istisna oluşturulacak ve catch bloğundaki kod yürütülecektir.

Catch Block'u deneyin

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

Dene ve yakala kullanımına ilişkin sözdizimi

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

Örnek E-posta

) 1 Adım 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");
   }
}

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

) 3 Adım Bir Aritmetik İstisna – 5. satır için sıfıra bölme aşağıda gösterildiği gibi gösterilir ve 6. satır hiçbir zaman yürütülmez.

) 4 Adım Şimdi try ve catch'in bu istisnayı ele almamıza nasıl yardımcı olacağını inceleyelim. Kod satırına neden olan istisnayı bir denemek blok ve ardından bir yakalamak blok. Aşağıdaki kodu editöre 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");
 }
}

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

Catch Block'u deneyin

Gördüğünüz gibi istisna işlenir ve kodun son satırı da yürütülür. Ayrıca Satır #7'nin yürütülmeyeceğini unutmayın çünkü Bir istisna ortaya çıktığı anda kontrol akışı catch bloğuna atlar.

Not: AritmeticException Nesnesi “e”, meydana gelen istisna hakkında, kurtarma eylemlerinin gerçekleştirilmesinde yararlı olabilecek bilgileri taşır.

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

Bir catch ifadesi yürütüldükten sonra diğerleri atlanır ve yürütme, try/catch bloğundan sonra devam eder. İç içe yakalama blokları İstisna hiyerarşisini takip eder.


Java İstisna Hiyerarşisi

  • Tüm istisna sınıfları Java 'Atılabilir' sınıfını genişletin. Fırlatılabilir'in iki alt sınıfı vardır: Hata ve İstisna
  • Error sınıfı, programımızın normal şartlarda oluşması beklenmeyen istisna veya sorunları tanımlar; örneğin Bellek hatası, Donanım hatası, JVM hatası vb.
  • Exception sınıfı, programımızın işleyebileceği istisnaları temsil eder ve programımız try ve catch bloğu kullanılarak bu istisnadan kurtarılabilir.
  • Çalışma zamanı istisnası, istisna sınıfının bir alt sınıfıdır. Bu türdeki İstisna, çalışma zamanında oluşan ve derleme zamanında izlenemeyen istisnaları temsil eder. Bunun mükemmel bir örneği, sıfıra bölme istisnası veya boş işaretçi istisnası vb.'dir.
  • Giriş ve çıkış işlemleri sırasında GÇ istisnası oluşturuldu
  • Kesintiye uğrayan istisnalar Java, çoklu iş parçacığı sırasında üretilir.

Örnek: Try ve catch bloklarının iç içe geçmesini anlamak

) 1 Adım Aşağıdaki kodu bir editöre 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");
 }
}

) 2 Adım Dosyayı kaydedin ve kodu derleyin. Komutu kullanarak programı çalıştırın, Java JavaIstisna.

) 3 Adım Bir ArrayIndexOutOfBoundsException oluşturulur. int d değerini 0 olarak değiştirin. Kodu kaydedin, derleyin ve çalıştırın.

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

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

) 6 Adım Derleme Hatası? Bunun nedeni, Exception'ın ArithmeticException Exception'ın temel sınıfı olmasıdır. ArithmeticException tarafından oluşturulan herhangi bir İstisna, Exception sınıfı tarafından da işlenebilir. Dolayısıyla ArithmeticException'ın catch bloğunun hiçbir zaman çalıştırılma şansı olmayacak ve bu da onu gereksiz kılacaktır. Dolayısıyla derleme hatası.

Java Sonunda Engelle

Nihayet blok ortaya çıkan bir istisnaya bakılmaksızın yürütülür try bloğunda. Bu isteğe bağlı try bloğuyla kullanmak için.

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

  statement(s)

 } finally {

  statement(s)

 }

Try bloğunda bir istisna oluşması durumunda, catch bloğu yürütüldükten sonra nihayet bloğu yürütülür.

Örnek E-posta

) 1 Adım Aşağıdaki kodu bir editöre 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");
  }
}
}

) 2 Adım Kodu Kaydet, Derle ve Çalıştır.

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

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

ÖZET

  • An İstisna bir çalışma zamanı hatasıdır program yürütmenin normal akışını kesintiye uğratan program yürütme sırasındaki kesintiye hata veya istisna denir.
  • Hatalar iki kategoriye ayrılır
    • Derleme zamanı hataları – Sözdizimi hataları, Anlamsal hatalar
    • Çalışma zamanı hataları-İstisna
  • A Sağlam program tüm istisnaları ele almalıdır ve normal program yürütme akışına devam edin. Java dahili olağanüstü bir kullanım yöntemi sağlar
  • İstisna İşleyicisi bir kod kümesidir. bir istisnayı ele alır. İstisnalar şu şekilde ele alınabilir: Java dene ve yakala'yı kullanarak.
  • Engellemeyi dene: Normal kod bu blokta devam eder.
  • Yakalama bloğu: Normal kodda hata varsa bu bloğa gider