Pengertian Exceptions serta Struktur Try Catch Bahasa Java

Dalam pemrograman, kesalahan atau error dapat terjadi karena berbagai hal, diantaranya error karena kesalahan sintaks, kesalahan logika, atau kesalahan input dari user. Kesalahan-kesalahan ini dapat menyebabkan program berhenti secara tidak terduga.

Untuk mengatasi masalah ini, Java menyediakan mekanisme exceptions. Dalam tutorial kali ini kita akan bahas pengertian dan cara penanganan exceptions dalam bahasa pemrograman Java.


Pengertian Exceptions

Exceptions adalah objek yang mewakili kesalahan ketika menjalankan kode program. Exceptions dapat dipakai untuk menghentikan program secara terkendali dan memberikan pesan kesalahan kepada user.

Java Exceptions juga bisa terjadi disebabkan kondisi abnormal selama eksekusi program. Ketika suatu exceptions terjadi, alur normal eksekusi kode program terputus dan Java akan mencari blok kode yang sesuai untuk menangani pengecualian tersebut. Pengertian ini akan lebih jelas saat kita masuk ke contoh kode program.

Java Exceptions terdiri dari dua jenis utama: checked exceptions dan unchecked exceptions.

  1. Checked exceptions adalah exceptions yang terjadi pada saat proses compilasi. Kode yang menghasilkan checked exception harus mengatasi error dengan menggunakan blok try-catch atau "melemparnya" ke metode pemanggil dengan menggunakan kata kunci throws.
  2. Unchecked exceptions adalah exceptions yang terjadi pada saat runtime. Kode program tidak wajib menangani pengecualian tersebut secara langsung, namun tentu akan lebih elegan jika kita sudah membuat kode untuk mengantisipasinya. Beberapa contoh unchecked exceptions adalah NullPointerException, ArrayIndexOutOfBoundsException, dan IllegalArgumentException.

Struktur Try Catch

Struktur try catch digunakan untuk menangani exceptions. Struktur ini terdiri dari dua blok kode, yaitu blok try dan blok catch. Blok try berisi kode yang berpotensi menimbulkan exceptions, sedangkan blok catch digunakan untuk menangani exceptions yang terjadi di blok try.

Berikut adalah contoh struktur dasar blok try catch dalam bahasa Java:

try {
  // Kode yang berpotensi menimbulkan exceptions
} catch (Exception e) {
  // Penanganan exceptions
}

Blok try dapat berisi kode apa pun, termasuk perintah if, for, atau do-while. Jika kode di blok try menghasilkan exceptions, maka blok catch akan dieksekusi.

Blok catch menerima objek exception sebagai parameter. Objek exception ini selanjutnya dipakai untuk mendapatkan informasi tentang kesalahan yang terjadi.

Berikut contoh kode program Java yang menggunakan struktur try catch:

public class BelajarJava {
  public static void main(String[] args) {

   try {
     int a = 10;
     int b = 0;
     int c = a / b;
   } catch (ArithmeticException e) {
     System.out.println("Terjadi arithmetic exception: "+ e.getMessage());
   }

  }
}

Hasil kode program:

Terjadi arithmetic exception: / by zero

Di dalam blok try pada baris 4-8, saya mendeklarasikan variabel a dengan nilai 10 dan variabel b dengan nilai 0. Kemudian mencoba membagi nilai a dengan nilai b menggunakan operator pembagian (/), yang hasilnya disimpan dalam variabel c.

Karena kita mencoba membagi angka dengan 0, itu akan menghasilkan ArithmeticException yang merupakan jenis exception untuk operasi aritmatika yang tidak valid.

Untuk menanganinya, saya menggunakan blok catch dengan parameter ArithmeticException. Jika exception terjadi, aliran program akan pindah ke blok catch ini.

Di dalam blok catch, tampilkan pesan kesalahan menggunakan method getMessage(). Pesan ini akan memberikan informasi tentang jenis exception serta detail kesalahan yang terjadi.

Jadi, saat kode diatas dijalankan hasilnya adalah "Terjadi arithmetic exception: / by zero". Ini menunjukkan bahwa terjadi ArithmeticException karena kita mencoba membagi angka dengan 0.


Jenis-Jenis Exceptions dalam Bahasa Java

Java memiliki berbagai jenis exceptions. Setiap jenis mewakili kesalahan yang berbeda. Berikut beberapa jenis exceptions yang umum ditemui:

  • ArithmeticException : Terjadi kesalahan aritmatika, seperti pembagian dengan nol.
  • NullPointerException : Terjadi kesalahan karena mencoba mengakses objek yang null.
  • ArrayIndexOutOfBoundsException : Terjadi kesalahan karena mencoba mengakses elemen array di luar batas.
  • NumberFormatException : Terjadi kesalahan karena mencoba mengubah string ke tipe data numerik yang tidak valid.
  • FileNotFoundException : Terjadi kesalahan karena mencoba membuka file yang tidak ada.

Struktur Try Catch Finally

Struktur finally adalah bagian opsional yang dapat ditambah setelah blok catch. Blok finally berisi kode yang akan dieksekusi, tidak peduli apakah exception terjadi atau tidak di blok try. Blok finally berguna untuk melakukan pekerjaan pembersihan, seperti menutup sumber daya yang digunakan di blok try.

Berikut contoh penggunaan blok finally dalam bahasa Java:

public class BelajarJava {
  public static void main(String[] args) {

    try {
      int[] myNumbers = {1, 2, 3};
      System.out.println(myNumbers[10]); // error!
    } 
    catch (Exception e) {
      System.out.println("Terjadi kesalahan.");
    } 
    finally {
      System.out.println("Blok try catch selesai.");
    }

  }
}

Hasil kode program:

Terjadi kesalahan.
Blok try catch selesai.

Di dalam blok try, saya mendeklarasikan array myNumbers dengan elemen [1, 2, 3]. Kemudian mencoba mencetak elemen dengan indeks 10, yang tentu saja akan error karena melebihi panjang array. Ini akan menghasilkan ArrayIndexOutOfBoundsException yang merupakan jenis exception hasil mengakses indeks array yang tidak valid.

Untuk menangani exception ini, saya menggunakan blok catch dengan parameter Exception. Exception adalah superclass dari semua exception dalam bahasa Java, sehingga dapat menangkap semua jenis exception. Jika exception terjadi, aliran program akan pindah ke blok catch ini.

Di dalam blok catch, tampilkan pesan "Terjadi kesalahan." untuk menunjukkan bahwa terjadi exception .

Setelah blok catch, terdapat tambahan blok finally. Blok ini akan selalu dieksekusi terlepas apakah exception terjadi atau tidak. Di dalam blok finally, tampilkan pesan "Blok try-catch selesai." sekedar menunjukkan bahwa eksekusi blok try-catch telah selesai.

Itulah contoh singkat tentang blok finally dalam bahasa Java.


Sebagai kesimpulan, exceptions adalah mekanisme penting dalam pemrograman Java. Exceptions digunakan untuk menghentikan program secara terkendali dan memberi kesempatan kita sebagai programmer untuk merancang pesan kesalahan kepada user.

Semoga tutorial ini bisa bermanfaat.

Add Comment