"try" Bloğu ve Yöntem Kural Dışı Durum Belİrtme
Basit kural dışı durum işleme, try bloğunu kullanarak koruma bölgeleri belirtmeyi ve catch bloğuyla kural dışı durum işleyicileri sağlamayı içerir. Kural dışı nesne kural dışı işleyiciye normal yöntem parametresi olarak sağlanır. Kural dışı nesnenin türü basitçe Exception olarak seçilebilir. Aşağıdaki örnek kural dışı durum işlemeye basit bir yol gösterir:
try {
    ...
} catch (Exception e) {
    ...
}

Kural dışı durum işleme mekanizması daha temiz ve izlenebilir bir kod üretmek için program mantığını hata-işleme'den ayırmanıza izin verir. Bu ayrıca hataları çagırma yığınına kadar yayabilir. Yani, eğer bir yöntem bir hataya sebep olursa, bu yöntemi çağıran yöntemler hata işleyicisi için araştırılır. Bu yüzden yöntemlerde karmaşık hata kodları döndürmenize ve çağırıcılardaki yöntem çağırmalarında döndürülen hata kodlarıyla uğraşmanıza gerek yoktur. Aşağıdaki örnek bu özelliği gösterir:
method1(){
    ...
    // burada bir hata olusur ve yürütme durdurulur.
    ...
}
method2(){
    ...
    method1();
    // method1 hataya sebep olduğundan yürütme burada durdurulur.
    // çünkü method2 hata işleyiciye sahip degildir.
    ...
}
method3(){
    ...
    try{
       method2();
    ...// bu deyimler yürütülmez 
    ...//method2 hataya neden oldugundan
    } catch(Exception e) {
        ...  
        // hata burda işlenir-yürütme buradan devam eder 
    }
    // yürütme normal olarak devam eder
    ...
}

Throwable sınıfı bütün kural dışı durumların ve Java programlama dilindeki hataların super sınıfıdır. Sadece Throwable'nin örneklerinin nesneleri veya onun alt sınıflari bir programda atılabilir. Kural dışı durumlar ve hata sınıfları için yüksek seviye hiyerarşisi aşağıdaki şekilde gösterilmektedir:
Error sınıfı ciddi hatalara (derleme zamanı veya sistem) karşılık gelir, bu yüzden bu tür kural dışı durumları genelde yakalamazsınız. Herhangi bir yöntem tarafından atılan standart kural dışı durumlar Exception sınıfının alt sınıflarının bir örnekleridir. Çoğu zaman bu tür kural dışı durumlarla uğraşırsınız.
Kural dışı nesnenin türünün adı oluşan hatanın türünü gösterir. Kural dışı durumların bazıları RuntimeException sınıfından çıkarılır (örneğin, NullPointerException, bir uygulama nesne gereken yerde null değer kullanırsa atılan bir hatadır), bazıları da Exception sınıfından çıkarılır (örneğin, IOException, girdi/çıktı operasyonlarında hata oluştuğunda atılır). Atılabilen hatalar hakkında daha detaylı bilgi edinmek için Java dokumantasyonuna başvururnuz.
Java programlama dilinde, bir yöntem çağırıldığında hangi kural dışı durumların atılabilir olduğunu, yöntemi bildirirken belirtmelisiniz (yöntem içinde işlenen hatalar ve RuntimeException türünde hatalar hariç). Eğer bir kural dışı durumu yöntem içinde işlememişseniz ve yöntem bildiriminde belirtmemişseniz, derleyici yönteminizi kontrol eder ve sizi olası hataları yöntem içinde belirtmeniz için zorlar. Bu yolla, yönteminizin kullanıcılarını, hangi tür kural dışı durumlarda uğraşacakları hakkında bilgilendirmiş olursunuz. Bu amaçla throws anahtar kelimesi şöyle kullanılabilir:
void myMethod(...) throws ExceptionType1, ExceptionType2, ., ExceptionTypeN {
    ...
}