“Atılabilir” Hata ve İstisna sınıflarının ana sınıfıdır. “RuntimeException” sınıfı ve alt sınıfları, “Error” sınıfı ve alt sınıfları “Denetlenmeyen istisnalar” iken, “RuntimeException” dışındaki “Exception” sınıfının kalan alt sınıfları kontrol edilen istisnalardır. Denetlenen ve denetlenmeyen istisnalar arasındaki temel fark, denetlenen istisnaların derleyici tarafından denetlenmesidir, oysa derleyici denetlenmeyen istisnaları denetlemez.
Kontrol tablosu ile işaretlenmemiş istisnalar arasındaki diğer farkları karşılaştırma tablosu yardımıyla tartışalım.
Karşılaştırma Tablosu
Karşılaştırma için temel | Kontrol Edilen İstisna | İşaretlenmemiş İstisna |
---|---|---|
Temel | Derleyici, kontrol edilen istisnayı kontrol eder. | Derleyici denetlenmeyen özel durum denetlemiyor. |
İstisna Sınıfı | "RuntimeException" sınıfı dışında, "Exception" sınıfının tüm alt sınıfları ve "Error" sınıfı ve alt sınıfları Checked Exception'dır. | "RuntimeException" sınıfı ve alt sınıfları, "Denetlenmeyen Özel Durumlar". |
kullanma | Eğer kontrol edilen istisnayı ele almazsak, derleyici nesnelerini kullanır. | Denetlenmeyen istisnaları ele almasak bile, derleyici itirazda bulunmaz. |
Derleme | Program kodunda işlenmemiş kontrol edilmiş bir istisna varsa program derlemez. | Program kodunda işlenmemiş denetlenmeyen bir özel durum olsa bile program başarıyla derlenir. |
Checked İstisnası tanımı
Kontrol edilen istisnalar, derleyici tarafından programın sorunsuzca yürütülebilmesi için kontrol edilen istisnalardır. Derleyici, programın kontrol edilen istisnayı idare edip edemediğini kontrol eder. Kod istisnayı işleyemezse, bir derleme hatası oluşur. RuntimeException sınıfı dışındaki tüm "İstisna" sınıfının tüm alt sınıfları denetlenen istisnalardır.
Kontrol edilen istisnayı bir örnekle inceleyelim.
java.io dosyasını içe aktarın *; sınıf Örnek {public static void main (String args []) {FileInputStream fis = null; fis = new FileInputStream ("B: /myfile.txt"); // Bu yapıcı FileInputStream (Dosya dosya adı), kontrol edilen bir istisna olan FileNotFoundException'ı atar. int k; while ((k = fis.read ())! = -1) {// FileInputStream sınıfının yöntemi okuma () da işaretli bir istisna atar: IOException. System.out.print ((char) k); } fis.close (); // close () yöntemi, IOException'ı attığı dosya giriş akışını kapatır. }}
Yukarıdaki kodda, dosya içeriğini açmaya, okumaya ve görüntülemeye çalışıyoruz. Dosya mevcut olmayabilir, ardından işaretli bir istisna olan FileNotFoundException ortaya çıkar. Denetlenen istisna kullanılmazsa, derleyici programın sorunsuz bir şekilde derlenmesine izin vermez. Derleme zamanı hatası gösterecektir. Bu nedenle, düzgün derleme için, kontrol edilen istisnalar yakalanmalı veya atılmalı olarak bildirilmelidir.
İşaretlenmemiş İstisna'nın Tanımı
İşaretlenmeyen İstisnalar, derleyici tarafından kontrol edilmeyen istisnalardır. Özel durumlar kod tarafından ele alınmasa bile, derleyici programı başarıyla derler. “Error” sınıfı ve alt sınıfları, “Runtime” sınıfı ve alt sınıfları denetlenmeyen istisnalardır.
Denetlenmeyen bir istisna örneği görelim.
sınıf Örnek {public static void main (String args []) {int arr [] = {1, 2, 3, 4, 5}; System.out.println (dizi [7]); // ArrayIndexOutOfBoundsException. }}
Yukarıdaki kodda, mevcut olmayan bir öğeye erişmeye çalıştığım için bir ArrayIndexOutOfBoundsException olduğunu görebilirsiniz. Bu denetlenmeyen bir özel durum olduğundan, derleme zamanı hatası oluşmaz ve dosya hatasız olarak derlenir. Ancak, istisna ele alınana kadar program yürütülmez. Bu nedenle, düzgün uygulama için istisnalar atılmalı veya atılmalıdır
Kontrol Edilen ve Kontrol Edilmeyen İstisna arasındaki Temel Farklılıklar
- Denetlenen istisnalar derleyici bilgisinde iken, Denetlenmeyen istisnalar derleyici bilgisinde değildir.
- RuntimeException ve Error sınıfı dışında tüm sınıflar istisna olarak kontrol edilir. Diğer yandan, RuntimeException ve Error sınıfları denetlenmeyen istisnalar.
- Eğer kontrol edilen istisnalar kod tarafından ele alınmazsa, derleyici nesneleri. Öte yandan, koddaki denetlenmeyen istisnaları ele almazsak, derleyici itirazda bulunmaz.
- Kodda işaretli istisnalar meydana gelirse, kod derlenmez, oysa denetlenmeyen istisnalar kod tarafından işlenmese bile, derleyici hala kodu derler.
Not :
Kontrol edilen veya kontrol edilmeyen istisnaların her ikisi de çalışma zamanı sırasında zorunlu olarak gerçekleşir. Derleme süresi boyunca sadece derleyici tarafından denetlenir veya işaretlenmezler.
Sonuç:
Programın sorunsuz bir şekilde yürütülebilmesi için hem kontrol edilen hem de kontrol edilmeyen istisnalar yerine getirilmelidir.