Kural Dışı Durum İşleyİcİlerİ
Çalışma zamanında atılan herhangi bir kural dışı durum, kural dışı durum işleyiciler tarafından yakalanabilir ve işlenebilir. Kural dışı durum işleyiciler try bloğunu takip ederler ve bir kural dışı durum nesnesini parametre olarak alırlar. Eğer kodunuz birden fazla kural dışı durum atabiliyorsa, onları birden fazla kural dışı durum işleyici ile ayırmaniz gerekir:
try{
    ... // kural dışı durum atabilen bazı kodlar
} catch(ExceptionType1 e1) {
    ... // ExceptionType1'in işlenmesi
} catch(ExceptionType2 e2) {
    ... // ExceptionType2'in işlenmesi
} catch(ExceptionType3 e3) {
    ... // ExceptionType3'in işlenmesi
}
    ... // yürütme kural dışı durum işleyici yürütüldükten sonra burdan devam eder
	

Eğer kural dışı bir durum oluşursa, doğru işleyici bulunur ve atılan kural dışı durum nesnesinin türüne göre yürütülür. İşleyicilerin sırasının önemli olduğuna dikkat ediniz. Eğer özel bir kural dışı durumdan (alt sınıf) önce, daha genel bir kural dışı durumu işlerseniz (süper sınıf), geri kalan işleyiciler anlamsız olacaktır ve derleyici sizi uyaracaktır. Eğer bir işleyicide bütün türlerdeki kural dışı durumları işlemek istiyorsanız basitçe Throwable'ı (bütün kural dışı durum sınıflarının kök süper sınıfı olduğundan) işlemelisiniz.
Her atılan kural dışı durum nesnesi oluşan hatanın türü ile ilgili bilgiler taşır, hata sırasında programın durumu, ve küçük bir mesaj (bu özellikler Throwable'den miras alınır). Kural dışı durum nesnesinin getMessage(), toString(), ve getStackTrace() yöntemleri kullanılarak işleyicideki hata hakkında bilgi edinilebilir.