Fırlatma

Java'da Veri Türleri ve İstisnalar

Jim White

Java Developer

İşleme seçenekleri

  • Checked exceptions "işlenmeyi" gerektirir
    • Runtime exceptions için "işleme" isteğe bağlıdır
  • "İşleme" için iki seçenek
    • Exception yakalamak için try/catch kullanın ve sorunu gidermek üzere kod yazın
    • İstisnayı "throw" edin
  • Bir istisnayı ele almak için tercih edilen yöntem try/catch'tir
    • Her zaman mümkün değildir; bazen istisna işlemesini merkezileştirmek daha iyidir
Java'da Veri Türleri ve İstisnalar

Throws anahtar sözcüğü

  • throws kullanarak istisnayı çağıran metoda iletebilirsiniz
    • Yani, istisnayı metod içinde ele almak yerine
    • Buna "istisna fırlatma" veya "sorumluluğu devretme" denir
    • İstisnayı ele alma sorumluluğunu çağırana devretme
  • throws sonrası istisna türlerini virgülle ayırın
    • Çağıranın hangi istisnaları bekleyebileceğini belirtir
public static void someMethod() throws IndexOutOfBoundsException, 
NegativeArraySizeException, NullPointerException {
  // method code
}
Java'da Veri Türleri ve İstisnalar
Throws örneği

Bir Exception için normal try-catch

public static void main(String[] args) {
  someMethod();
}
public static void someMethod(){
  try {
    ArrayList<String> games
      = new ArrayList<String>();
    games.add("Monopoly");
    games.add("Chess");
    games.get(3);
  } catch (IndexOutOfBoundsException e) {
    System.out.println(
   "Oops - trying to get non-existent item");
  }
}

Bir Exception için throws kullanma

public static void main(String[] args) {
  try {
    someMethod();
  } catch (IndexOutOfBoundsException e) {
    System.out.println(
   "someMethod tried to get non-existent item");
  }
}
public static void someMethod()
      throws IndexOutOfBoundsException {
  ArrayList<String> games
    = new ArrayList<String>();
  games.add("Monopoly");
  games.add("Chess");
  games.get(3);
}
Java'da Veri Türleri ve İstisnalar

Ne zaman throws kullanılır

  • "Sorumluluğu devretme" yani istisna fırlatma genelde kaçınılır
    • Tercihen, istisnaları oluştukları yerde try-catch ile ele alın
  • Throw kullanmanın, try-catch yerine, nedenleri:
    • İstisnanın oluştuğu metod nasıl toparlanacağını bilemeyebilir
    • Yinelenen try/catch kodunu azaltmak için işlemenin merkezileştirilmesi

İstisna fırlatma genellikle özel istisnalarla kullanılır

1 Photo from https://unsplash.com/@philipparosetite
Java'da Veri Türleri ve İstisnalar

Yakala ve yeniden fırlat

  • Bir Exception yeniden "fırlatılabilir"
    • Çağıran metod, try/catch yerine throws kullanır
  • main içinden yeniden fırlatmak uygulamayı durdurur

İstisnalar çağıran metodlara yeniden fırlatılabilir

Java'da Veri Türleri ve İstisnalar

Yeniden fırlatma örneği

public class RethrowExample {
    public static void main(String[] args) {
        try {
            method1(0);
        } catch (ArithmeticException e) {
            System.out.println("Oops - tried a bad quotient");
        }
    }
    public static void method1(int divisor) throws ArithmeticException {
        method2(divisor);
    }
    public static void method2 (int divisor) throws ArithmeticException {
        int z = 5/divisor;
        System.out.println(z);
    }
}
Java'da Veri Türleri ve İstisnalar

Hadi pratik yapalım!

Java'da Veri Türleri ve İstisnalar

Preparing Video For Download...