İçindekiler:
Video: Java - Ders 67: İstisna İşleme (Exception Handling) 2024
Java kodunuz bir sorunu düzeltmek için her türlü çabayı gösteriyor. Bununla birlikte, kodunuzun bir sorunu düzeltmek için yeterli bilgi, kaynak, hak veya başka bir gereksinimi bulunmadığı zamanlar vardır.
Bu gerçekleştiğinde, kodunuz bir istisna nesnesi kullanarak bir hata atar. istisna terimi, uygulamanın gerçekleştirdiği ilk eylem yerine kuralın istisnası olması nedeniyle uygundur. Buna rağmen, uygulamalar olağandışı önlemler gerektiren hatalarla karşılaşır ve sonraki bölümlerde bu tür durumlarla nasıl başa çıkılacağı anlatılmaktadır.
İstisnai koşullardaki fırlatma hataları
Uygulama için birden fazla hatayı üreten bir uygulama oluşturabilirsiniz. Normalde, bir değer yanlış aralıkta bulunuyorsa bir hata atmazsınız - doğrudan kullanıcıya bir ileti görüntülersiniz. Bununla birlikte, bir yöntem içinde bir hatanın nasıl atılacağını ve yakalanacağını gösteren bir örnek oluşturabilirsiniz.
Hataları arayan kişiye iletme
Başladığınız birçok kod örnekleri yalnızca main () yöntemlerini çağırdığınız noktaya gelmeye başlamış durumdadır. Main () yöntemi her zaman uygulamanızın üst düzeyidir. Yöntemleri çağırırken, çağırdığınız yöntemler ek düzeyler oluşturur.
Örneğin, main () denilen bir yöntem uygulamanızın ikinci düzeyinde olacaktır. Bu yöntem başka bir yöntemi çağırmak zorunda kalırsa, bu yöntem üçüncü seviyede olur, vb. Çoğu uygulama birçok çağrı seviyesinden oluşur.
Aslında ekranda bir istisna gördüğünüzde, geçerli yöntemi çağıran yöntemlerin listesini çağrı yığını olarak adlandırılan bir biçimde görüntüler.
Çağrı yığıtı, yöntemlerin bir listesidir ve diğer yöntemlerle çağrıldıkları sıralardır. Çağrı yığınını bilmek, uygulamanın geçerli düzeyinde gerçekleşmediğinde olası bir hatanın kaynağını bulmanıza yardımcı olabilir.
Hataları işleme, iyi programlama uygulamasının vazgeçilmez bir parçasıdır. Sürekli çökmeyen sağlam uygulamalar istiyorsanız, iyi hata işleme sağlamanız gerekir. Ancak, bu hatayı işlemek için yeterli bilgiye sahip olmadığınızda bir hatayı işleme koymaya çalışmak da bir sorundur.
Kodunuz bir hatayı çok düşük seviyede düzeltmeye çalıştığında, hatayı muhtemelen düzeltebilecek bir seviyeden gizler. Evet, mümkün olan en düşük seviyede bir hatayı düzeltmek istiyorsunuz, ancak gerçekte daha ciddi bir şeyi gizleyerek sonuçlanabilecek bir onarım pahasına değil.
Belli bir düzeyde bir uygulamanın gerekli kaynakları, bilgileri, ayrıcalıkları, kullanıcı erişimini veya bir hatanın üstesinden gelmek için ihtiyaç duyulan başka bir öğeyi olmadığını fark ettiğinizde, uygun özel durum nesnesi ile bir throw ifadesi yayınlarsınız.Başvurunun bir önceki seviyesi istisnayı alacak ve onu işleyip destekleyemeyeceğini belirleyecektir.
Bununla birlikte, main () yöntemi özel durumu alırsa, o zaman hata ile ne yapılacağını belirlemelisiniz veya uygulama çökecektir. Genel olarak, uygulamanın çökmesine izin vermek kötü programlama uygulaması olarak düşünülür - uygulamanın karşılaştığı hatalarla başa çıkmanız için bir takım yollar bulmanız gerekir.
Gerekli hata işleme
Java, iki tür istisna sunar: checked (JRE tarafından izlenen) ve denetlenmeyen (JRE tarafından izlenmeyen). Kontrol edilmemiş bir istisnayı işleme seçeneğine sahipsiniz. Bununla birlikte, Java kontrol edilen bir istisnayı işleme zorlar. Onayla ilişkili kontrol edilen bir istisna olan bir yöntemi kullanmaya çalışırsanız, kodunuz derlenmeyecektir.
Kontrol edilen bir istisna, JRE'nin sınıf tanımında izlenmesi için söylendiği bir istisnadır. JRE, sınıfın kullanıcısını, sınıfın güvenilir bir şekilde çalışmasını sağlamak için istisna için işleme sağlamayı zorlar.
Her tür ayrıntı, kontrol edilen ve kontrol edilmeyen istisnalarla ilişkilendirilir. Bir istisnanın işaretlenip onaylanmadığını öğrenmenin kolay bir yolu, üst sınıfı bilmektir. Error veya RuntimeException sınıflarından alt sınıflandırılmış olan tüm istisnalar kontrol edilmiyor - diğer her istisna kontrol edildi.
En iyi uygulama, uygulamanızda her istisnayı idare etmektir ve bir istisnanın işaretlenip denetlenmediğini merak etmenize gerek kalmaz. Büyük bir geliştirici her zaman olası hataları işler - bu alt satırda.