İStisna ve Hata Arasındaki Fark

Anonim

İstisna ve Hata

olan bir etkinliktir. Beklenmedik davranış, bir program çalışırken gerçekleşecektir. Bu istisnalar veya hatalar olabilir. İstisnalar, normal program akışını bozabilecek olaylardır. Hatalar, telafisi mümkün olmayan koşullardır. Hatalar, programın çalıştığı sistemle ilgili iken, istisnalar çoğunlukla uygulamanın kendisiyle ilgilidir.

İstisna nedir?

İstisna, normal program akışını bozabilecek bir olaydır. İsim istisnası, "istisnai olay" dan gelir. Bir istisna atmak, bir istisna nesnesi oluşturma ve çalışma zamanı sistemine aktarma işlemidir. İstisna nesnesi, istisnanın oluştuğu yöntemle oluşturuldu. İstisna nesnesi, istisna türü ve açıklaması gibi yararlı bilgileri içerir. Çalışma zamanı sistemi özel durum nesnesini aldığında, onu ters sırada (yöntemlerin çağrıldığı sırada) geçirerek arama yığını içinde işleyecek birini bulmaya çalışacaktır. Çağırma yığını, istisnanın oluştuğu yöntemden önce çağrılan yöntemlerin sıralı listesidir. Çalışma zamanı sistemi, bir özel durum işleyici içeren bir yöntem bulursa başarılı olur. Özel durum işleyicisi, söz konusu özel durumu işleyebilecek bir kod bloğudur. Çalışma zamanı sistemi uygun bir işleyici bulursa (yani, işlenebilen türle eşleşen bir istisna türü), işleyiciye özel durum nesnesini iletir. Buna istisna yakalamak denir. Bununla birlikte, istisna ele alınamazsa, program sona erer. Java'da istisnalar 'Throwable sınıfından devralır. 'NullPointerException ve ArrayIndexOutOfBoundsException, Java'da iki yaygın istisna durumudur.

Hata Nedir?

Hata, mevcut olanlardan daha büyük bir miktarda bellek gerektiren program gibi kurtarılamayacak bir durumdur. Bu hatalar, çalışma zamanında ele alınamaz. Bir hata oluşursa, program son bulacaktır. Java'da, hatalar Throwable sınıfından miras alır. Hatalar genellikle programcının (veya uygulamanın) yakalamaya çalışmaması gereken ciddi sorunlar anlamına gelir. Hatalar normal koşullar altında asla gerçekleşmesi beklenmeyen anormal durumlardır ve bu nedenle asla öngörülmemiştir. Örneğin, OutOfMemoryError, StackOverflowError ve ThreadDead bu tür hatalar. Yöntemlerin hatalar için asla işleyicileri bulunmamalıdır.

İstisna ve Hata arasındaki fark nedir?

Hem hata hem de istisnalar, bir programın yürütülmesi sırasında istenmeyen olaylardır. Bununla birlikte, önemli farklılıklar var. İstisnalar programcı tarafından öngörülebilir, ancak bir hata öngörülebilir.İstisnalar kontrol edilebilir veya kontrol edilmeyebilir. Ancak hatalar daima denetlenmez. İstisnalar tipik olarak programcının neden olduğu bir hatayı gösterir. Bununla birlikte, bir sistem hatası veya bir kaynağın uygunsuz kullanımı nedeniyle hatalar oluşur. Bu nedenle, istisnalar uygulama düzeyinde ele alınırken, hatalar sistem seviyesinde halledilmelidir (mümkünse). Bir istisna ele aldıktan sonra, normal program akışına geri dönmeniz garanti edilir. Ancak bir hata yakalanmış olsa dahi, programcı ilk etapta nasıl baş edileceğini bilmeyebilir. Geleneksel hata işlemesinin aksine, özel durumlar, hata işleme kodunun normal koddan ayrılmasına izin verir.