Lewati ke isi

๐Ÿ›‘ Exception Handling (Penanganan Error) dalam Java

Tidak semua program berjalan mulus. Error bisa terjadi karena: - Input tidak valid - File tidak ditemukan - Pembagian oleh nol - Koneksi gagal - Dan lainnya...

Untuk itulah Java menyediakan mekanisme exception handling agar error bisa ditangani dengan elegan โ€” bukan bikin program langsung crash.


๐Ÿง  Apa Itu Exception?

Exception adalah kondisi tidak normal yang terjadi saat program berjalan (runtime error), dan bisa ditangkap serta ditangani.

Contoh:

int a = 5 / 0; // ArithmeticException
````

---

## ๐Ÿงฑ Struktur Dasar try-catch

```java
try {
    // kode yang berpotensi error
} catch (ExceptionTipe e) {
    // penanganan error
}

Contoh:

public class Demo {
    public static void main(String[] args) {
        try {
            int a = 5 / 0;
        } catch (ArithmeticException e) {
            System.out.println("Terjadi kesalahan: " + e.getMessage());
        }
    }
}

๐Ÿ’ก Output:

Terjadi kesalahan: / by zero

๐Ÿ” Blok finally

finally akan selalu dieksekusi, baik ada exception maupun tidak. Cocok untuk:

  • Menutup file
  • Melepas koneksi
  • Membersihkan resource
try {
    int[] data = {1, 2};
    System.out.println(data[5]);
} catch (ArrayIndexOutOfBoundsException e) {
    System.out.println("Index error!");
} finally {
    System.out.println("Selesai.");
}

๐ŸŽฏ Multiple Catch

Menangkap lebih dari satu tipe exception:

try {
    String s = null;
    System.out.println(s.length());
} catch (ArithmeticException e) {
    System.out.println("Error matematika");
} catch (NullPointerException e) {
    System.out.println("Null error");
}

๐ŸŽฏ Menggunakan throw

Digunakan untuk melempar exception secara manual:

throw new IllegalArgumentException("Umur tidak boleh negatif");

๐ŸŽฏ Menggunakan throws

Digunakan untuk mendeklarasikan bahwa method bisa melempar exception:

void bacaFile() throws IOException {
    FileReader fr = new FileReader("data.txt");
}

๐Ÿ“š Hierarki Exception Java

Throwable
โ”œโ”€โ”€ Error (tidak perlu ditangani)
โ””โ”€โ”€ Exception
    โ”œโ”€โ”€ CheckedException  (harus ditangani)
    โ””โ”€โ”€ UncheckedException (boleh ditangani)
Jenis Contoh Harus ditangani?
CheckedException IOException, SQLException โœ… Ya
UncheckedException NullPointerException, ArithmeticException โŒ Opsional

๐Ÿงช Studi Kasus: Validasi Umur

class Mahasiswa {
    void setUmur(int umur) {
        if (umur < 0) {
            throw new IllegalArgumentException("Umur tidak boleh negatif");
        }
        System.out.println("Umur: " + umur);
    }
}

๐Ÿ“Œ Kesimpulan

Konsep Penjelasan
try-catch Menangkap dan menangani error
finally Eksekusi wajib (cleanup)
throw Melempar error secara manual
throws Mendeklarasikan bahwa method bisa error
Exception Objek kesalahan yang bisa ditangani

โžก๏ธ Selanjutnya: Array dan ArrayList