Hatasız kul olmaz diye bir söz vardır 🙂 Yazılımda da bu söz geçerlidir. Gerçekten hata olmadan bir yazılımı gerçekleştirmek mümkün değildir. Burada karşımıza Throwable sınıfından türemiş Error ve Exception sınıfları çıkıyor. Exception da kendi içerisinde RunTimeException(Unchecked) ve Other Exceptions(Checked) olarak ikiye ayrılmaktadır.

Nedir Bu Error ?
Sistem kaynaklarının yetmemesi ya da eksikliğinden ortaya çıkan hatalardır. Program kodu ile alakalı bir durumu yoktur. Bu hatalar yakalanamaz ve fırlatılamaz. Yazılım ile idare edilemeyen hatalardandır. Kullanıcıya bir mesaj veremeden anormal bir şekilde sonlandırılır. Örneğin Bellek yetmemesi durumu, Sistem çökmesi gibi verebiliriz.
Nedir Bu Exception ?
Yazılımın kodundan kaynaklı hatalardır. Kodda istenmeyen durumların oluşması olarak tanımlanabilir. Bu hataları try-catch ile yakalayabiliriz. Throw keywordu ile bu hatalardan fırlatabiliriz. Bu hataların sistem ile ilgisi yoktur. Exception oluştuğunda anormal bir biçimde sonlanmaz try-catch ile yakalayarak hatayı işleriz ve anlamlı bir mesaj verebiliriz. Exception kendi içerisinde ikiye ayrılır. NullPointerException, ClassNotFoundException vs. örnekler verebiliriz.
- Other Exception(Checked)
Compile time sırasında handle edilmesi gereken exceptiondır. IDE bizi uyarmaktadır. Bu tipteki bir exception try-cath ile yakalanabilmektedir. Kullanıcıya bir şey yansıtmadan hatayı by-pass edebiliriz istediğimiz gibi işleyebiliriz. Yazılımı kaldığı yerden uygun bir şekilde devam ettirebiliriz.
- RunTimeException(Unchecked)
Compile time anında handle edilmesine gerek olmayan exceptiondır. IDE bizi burada uyarmaz. Ama kod içerisindeki bir hatadan kaynaklı meydana gelebilir. Checked Exception gibi try-catch içerisinde yakalanabilir ancak exception olabileceği ön görülmesi gerekir.