Java’da throw ve throws tanımları karıştırılan kavramlardan biridir. Aslında yazılışları aynı gibi de görünse anlamları çok farklıdır.
throw: Bu tanımlama kod içerisinde istediğimiz Exception’ı atmamızı sağlar. Bu Exception hiyerarşik olarak programın başka bölümleri tarafından tutulur.
throws: Bu tanımlama ise methodun içerisindeki işlemler sırasında bu Exception’ları atabileceği ve bu nedenden dolayı methodun try/catch blokları arasında çağırılması gerektiğini söyler.
Örnek vermek gerekirse;
public int myException(int num) throws NumberFormatException { if(num < 0) { throw new NumberFormatException(); } return num; }
Yukarıdaki örnekte myException methodu NumberFormatException atabilir çünkü mehod tanımlamasında “throws NumberFormatException” denilmiş. Eğer parametre olarak negatif bir sayı verilirse “throw new NumberFormatException();” komutuyla Exception atıyoruz. Bu method pozitif bir sayı girilirse parametre olarak girdiğimiz sayıyı dönecektir.
try { myException(-1); } catch(NumberFormatException exc) { System.out.println("Negatif sayı girdiniz..."); }
Yukarıdaki kod atılan Exception’ı try/catch bloğu içerisinde yakalayıp ekrana “Negatif sayı girdiniz…” yazısını basacaktır.

Son Yorumlar