Melempar

Tipe Data dan Exception di Java

Jim White

Java Developer

Opsi penanganan

  • Checked exception wajib "ditangani"
    • Menangani runtime exception bersifat opsional
  • Dua opsi untuk "menangani"
    • Gunakan try-catch untuk menangkap Exception dan menulis kode penanganan
    • "Lempar" exception
  • Try/catch adalah cara utama menangani exception
    • Tidak selalu bisa; kadang lebih baik konsolidasikan penanganan exception
Tipe Data dan Exception di Java

Kata kunci throws

  • Gunakan throws pada metode untuk meneruskan exception ke pemanggil
    • Alih-alih menangani di dalam metode
    • Disebut "melempar exception" atau "oper tanggung jawab"
    • Tanggung jawab penanganan dialihkan ke pemanggil
  • Gunakan daftar tipe exception dipisah koma setelah throws
    • Menunjukkan tipe exception yang perlu diantisipasi pemanggil
public static void someMethod() throws IndexOutOfBoundsException, 
NegativeArraySizeException, NullPointerException {
  // method code
}
Tipe Data dan Exception di Java
Contoh throws

Try-catch normal untuk menangani Exception

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");
  }
}

Menangani Exception dengan throws

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);
}
Tipe Data dan Exception di Java

Kapan memakai throws

  • "Oper tanggung jawab" atau melempar exception sebaiknya dihindari
    • Praktik yang lebih baik: try-catch di lokasi terjadinya
  • Alasan melempar alih-alih try-catch:
    • Metode tempat error terjadi mungkin tidak tahu cara pulih
    • Sentralisasi penanganan untuk kurangi kode try/catch berulang

Melempar exception umumnya dipakai dengan custom exception

1 Foto dari https://unsplash.com/@philipparosetite
Tipe Data dan Exception di Java

Catch dan lempar ulang

  • Exception dapat "dilempar ulang"
    • Metode pemanggil juga memakai throws alih-alih try/catch
  • Melempar ulang dari main akan menghentikan aplikasi

Exception dapat dilempar ulang ke metode pemanggil

Tipe Data dan Exception di Java

Contoh lempar ulang

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);
    }
}
Tipe Data dan Exception di Java

Ayo berlatih!

Tipe Data dan Exception di Java

Preparing Video For Download...