๐ 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