- İstisna işleme
- İstisna İşlemenin Avantajı
- İstisna sınıflarının hiyerarşisi
- İstisna Türleri
- İstisna Örneği
- Bir istisnanın oluşabileceği senaryolar
Java'da İstisna İşleme güçlülerden biridir çalışma zamanı hatalarını işlemek için mekanizma Böylece uygulamanın normal akışı korunabilir.
Bu derste Java istisnalarını, türlerini ve işaretli ve işaretsiz istisnalar arasındaki farkı öğreneceğiz.
internetin dezavantajları
Java'da İstisna Nedir?
Sözlük Anlamı: İstisna anormal bir durumdur.
Java'da istisna, programın normal akışını bozan bir olaydır. Çalışma zamanında fırlatılan bir nesnedir.
İstisna İşleme Nedir?
İstisna İşleme, ClassNotFoundException, IOException, SQLException, RemoteException vb. gibi çalışma zamanı hatalarını işlemeye yönelik bir mekanizmadır.
İstisna İşlemenin Avantajı
İstisna yönetiminin temel avantajı uygulamanın normal akışını sürdürmek için . Bir istisna normalde uygulamanın normal akışını bozar; bu yüzden istisnaları ele almamız gerekiyor. Bir senaryo düşünelim:
statement 1; statement 2; statement 3; statement 4; statement 5;//exception occurs statement 6; statement 7; statement 8; statement 9; statement 10;
Bir Java programında 10 ifade bulunduğunu ve 5. ifadede bir istisna oluştuğunu varsayalım; kodun geri kalanı yürütülmeyecektir, yani 6'dan 10'a kadar olan ifadeler yürütülmeyecektir. Ancak istisna işlemeyi yaptığımızda geri kalan ifadeler yürütülecektir. Bu nedenle istisna işlemeyi kullanıyoruz Java .
Biliyor musunuz?
|
Java İstisna sınıflarının hiyerarşisi
Java.lang.Throwable sınıfı, iki alt sınıf tarafından miras alınan Java İstisna hiyerarşisinin kök sınıfıdır: Exception ve Error. Java Exception sınıflarının hiyerarşisi aşağıda verilmiştir:
Java İstisnalarının Türleri
Temel olarak iki tür istisna vardır: işaretli ve işaretsiz. Bir hata, denetlenmeyen istisna olarak kabul edilir. Ancak Oracle'a göre üç tür istisna vardır:
- Kontrol Edilen İstisna
- İşaretlenmemiş İstisna
- Hata
İşaretli ve İşaretsiz İstisnalar Arasındaki Fark
1) Kontrol Edilen İstisna
RuntimeException ve Error dışında doğrudan Throwable sınıfını miras alan sınıflar, kontrol edilen istisnalar olarak bilinir. Örneğin, IOException, SQLException vb. İşaretlenen istisnalar derleme zamanında kontrol edilir.
2) Kontrol Edilmeyen İstisna
RuntimeException'ı miras alan sınıflar, denetlenmeyen istisnalar olarak bilinir. Örneğin, ArithmeticException, NullPointerException, ArrayIndexOutOfBoundsException, vb. Denetlenmeyen istisnalar derleme zamanında kontrol edilmez, ancak çalışma zamanında kontrol edilir.
3) Hata
Hata düzeltilemez. Bazı hata örnekleri OutOfMemoryError, VirtualMachineError, AssertionError vb.'dir.
Java İstisna Anahtar Kelimeleri
Java, istisnayı işlemek için kullanılan beş anahtar kelime sağlar. Aşağıdaki tabloda her biri açıklanmaktadır.
Anahtar kelime | Tanım |
---|---|
denemek | 'Try' anahtar kelimesi, istisna kodunu yerleştirmemiz gereken bloğu belirtmek için kullanılır. Bu, try bloğunu tek başına kullanamayacağımız anlamına gelir. Try bloğunun ardından catch ya da nihayet gelmelidir. |
yakalamak | 'Catch' bloğu istisnayı işlemek için kullanılır. Başında try bloğu bulunmalıdır, bu da catch bloğunu tek başına kullanamayacağımız anlamına gelir. Bunu daha sonra nihayet blok takip edebilir. |
Sonunda | 'Nihayet' bloğu programın gerekli kodunu çalıştırmak için kullanılır. Bir istisnanın ele alınıp alınmamasına bakılmaksızın yürütülür. |
fırlatmak | 'Throw' anahtar sözcüğü bir istisna atmak için kullanılır. |
atar | 'Throws' anahtar sözcüğü istisnaları bildirmek için kullanılır. Yöntemde bir istisna oluşabileceğini belirtir. Bir istisna atmaz. Her zaman yöntem imzasıyla birlikte kullanılır. |
Java İstisna İşleme Örneği
İstisnayı işlemek için try-catch ifadesini kullandığımız Java İstisna İşleme örneğine bakalım.
JavaExceptionÖrnek.java
public class JavaExceptionExample{ public static void main(String args[]){ try{ //code that may raise exception int data=100/0; }catch(ArithmeticException e){System.out.println(e);} //rest code of the program System.out.println('rest of the code...'); } }Şimdi Test Edin
Çıktı:
Exception in thread main java.lang.ArithmeticException:/ by zero rest of the code...
Yukarıdaki örnekte 100/0, try-catch bloğu tarafından işlenen bir ArithmeticException'ı oluşturur.
Java İstisnalarına İlişkin Yaygın Senaryolar
Denetlenmeyen istisnaların meydana gelebileceği bazı senaryolar verilmiştir. Bunlar aşağıdaki gibidir:
1) ArithmeticException'ın gerçekleştiği bir senaryo
Herhangi bir sayıyı sıfıra bölersek ArithmeticException oluşur.
int a=50/0;//ArithmeticException
2) NullPointerException'ın oluştuğu bir senaryo
Herhangi bir değerde null değerimiz varsa değişken değişken üzerinde herhangi bir işlem gerçekleştirilmesi bir NullPointerException oluşturur.
String s=null; System.out.println(s.length());//NullPointerException
3) NumberFormatException'ın gerçekleştiği bir senaryo
Herhangi bir değişkenin veya sayının formatı eşleşmiyorsa NumberFormatException ile sonuçlanabilir. Diyelim ki elimizde bir sicim karakterleri olan değişken; bu değişkeni rakama dönüştürmek NumberFormatException'a neden olur.
String s='abc'; int i=Integer.parseInt(s);//NumberFormatException
4) ArrayIndexOutOfBoundsException'ın gerçekleştiği bir senaryo
Bir dizi boyutunu aştığında ArrayIndexOutOfBoundsException oluşur. ArrayIndexOutOfBoundsException'ın oluşmasının başka nedenleri de olabilir. Aşağıdaki ifadeleri göz önünde bulundurun.
int a[]=new int[5]; a[10]=50; //ArrayIndexOutOfBoundsException
Java İstisnaları Dizini
- Java Try-Catch Bloğu
- Java Çoklu Yakalama Bloğu
- Java İç İçe Deneme
- Java Nihayet Engellendi
- Java Anahtar Kelimesini Atın
- Java İstisna Yayılımı
- Java Anahtar Kelimeyi Atar
- Java Atma ve Atma Karşılaştırması
- Java Final vs Nihayet vs Finalize
- Yöntem Geçersiz Kılma ile Java İstisna İşleme
- Java Özel İstisnaları