Pengecualian Java - Coba...Tangkap


Pengecualian Jawa

Saat mengeksekusi kode Java, kesalahan yang berbeda dapat terjadi: kesalahan pengkodean yang dibuat oleh programmer, kesalahan karena input yang salah, atau hal-hal lain yang tidak terduga.

Ketika terjadi kesalahan, Java biasanya akan berhenti dan menghasilkan pesan kesalahan. Istilah teknis untuk ini adalah: Java akan melempar pengecualian (melempar kesalahan).


Jawa coba dan tangkap

Pernyataan trytersebut memungkinkan Anda untuk menentukan blok kode yang akan diuji kesalahannya saat sedang dieksekusi.

Pernyataan catchtersebut memungkinkan Anda untuk menentukan blok kode yang akan dieksekusi, jika terjadi kesalahan pada blok try.

Kata kunci trydan catchberpasangan:

Sintaksis

try {
  //  Block of code to try
}
catch(Exception e) {
  //  Block of code to handle errors
}

Perhatikan contoh berikut:

Ini akan menghasilkan kesalahan, karena myNumbers[10] tidak ada.

public class Main {
  public static void main(String[ ] args) {
    int[] myNumbers = {1, 2, 3};
    System.out.println(myNumbers[10]); // error!
  }
}

Outputnya akan menjadi seperti ini:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
        at Main.main(Main.java:4)

Jika terjadi kesalahan, kita dapat menggunakan try...catchuntuk menangkap kesalahan dan mengeksekusi beberapa kode untuk menanganinya:

Contoh

public class Main {
  public static void main(String[ ] args) {
    try {
      int[] myNumbers = {1, 2, 3};
      System.out.println(myNumbers[10]);
    } catch (Exception e) {
      System.out.println("Something went wrong.");
    }
  }
}

Outputnya akan menjadi:

Something went wrong.

Akhirnya

Pernyataan finallytersebut memungkinkan Anda mengeksekusi kode, setelah try...catch, terlepas dari hasilnya:

Contoh

public class Main {
  public static void main(String[] args) {
    try {
      int[] myNumbers = {1, 2, 3};
      System.out.println(myNumbers[10]);
    } catch (Exception e) {
      System.out.println("Something went wrong.");
    } finally {
      System.out.println("The 'try catch' is finished.");
    }
  }
}

Outputnya akan menjadi:

Something went wrong.
The 'try catch' is finished.


Kata kunci lempar

Pernyataan throwtersebut memungkinkan Anda membuat kesalahan khusus.

Pernyataan throwtersebut digunakan bersama dengan tipe pengecualian . Ada banyak jenis pengecualian yang tersedia di Jawa: ArithmeticException, FileNotFoundException, ArrayIndexOutOfBoundsException, SecurityException, dll:

Contoh

Berikan pengecualian jika usia di bawah 18 (cetak "Akses ditolak"). Jika usia 18 tahun atau lebih, cetak "Akses diberikan":

public class Main {
  static void checkAge(int age) {
    if (age < 18) {
      throw new ArithmeticException("Access denied - You must be at least 18 years old.");
    }
    else {
      System.out.println("Access granted - You are old enough!");
    }
  }

  public static void main(String[] args) {
    checkAge(15); // Set age to 15 (which is below 18...)
  }
}

Outputnya akan menjadi:

Exception in thread "main" java.lang.ArithmeticException: Access denied - You must be at least 18 years old.
        at Main.checkAge(Main.java:4)
        at Main.main(Main.java:12)

Jika usia adalah 20, Anda tidak akan mendapatkan pengecualian:

Contoh

checkAge(20);

Outputnya akan menjadi:

Access granted - You are old enough!

Uji Diri Anda Dengan Latihan

Olahraga:

Masukkan bagian yang hilang untuk menangani kesalahan dalam kode di bawah ini.

 {
  int[] myNumbers = {1, 2, 3};
  System.out.println(myNumbers[10]);
}  (Exception e) {
  System.out.println("Something went wrong.");
}