ArrayList ile Vector arasındaki fark? Javaci.net Rss Okuyucu
Jun 15

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.

yazan ekocaman

Cevapla