Exceptions Handling pada Bahasa Pemrograman C#
Pernah nggak sih, lagi ngoding asyik tiba-tiba program error dan berhenti jalan? Nah, kalau nggak ditangani dengan baik, error bisa bikin aplikasi kita crash atau bahkan kehilangan data penting! Di sinilah exception handling dalam C# berperan.
Exception handling adalah teknik dalam pemrograman untuk menangkap dan menangani error tanpa membuat program langsung berhenti. Dengan ini, kita bisa mengontrol dan memperbaiki error sebelum semuanya kacau.
Yuk, kita bahas cara mencegah program crash dengan exception handling di C#!
1. Apa Itu Exception dalam C#?
Exception adalah kesalahan yang terjadi saat program berjalan (runtime error). Contohnya?
- Membagi angka dengan nol (
DivideByZeroException
) - Mengakses elemen array yang tidak ada (
IndexOutOfRangeException
) - Menggunakan objek yang bernilai
null
(NullReferenceException
)
Kalau nggak ditangani, exception bisa menyebabkan program langsung berhenti.
Ciri-Ciri Exception Handling
✅ Mencegah program crash karena error runtime.
✅ Memungkinkan kita menangani error dengan cara yang lebih baik.
✅ Membantu dalam debugging dan logging error.
2. Menggunakan Try-Catch untuk Menangkap Error
C# menyediakan blok try-catch
buat menangani error. Saat ada error dalam try
, blok catch
akan menangkapnya tanpa menghentikan program.
Contoh Sederhana Try-Catch
using System;
class Program {
static void Main() {
try {
int a = 10;
int b = 0;
int hasil = a / b; // Error: DivideByZeroException
Console.WriteLine("Hasil: " + hasil);
}
catch (DivideByZeroException e) {
Console.WriteLine("Terjadi kesalahan: " + e.Message);
}
}
}
Output:
Terjadi kesalahan: Attempted to divide by zero.
Penjelasan:
- Kode dalam
try
mencoba membagi angka dengan nol. - Karena ini tidak diperbolehkan,
catch
menangkapDivideByZeroException
dan menampilkan pesan error.
3. Multiple Catch untuk Menangani Berbagai Jenis Error
Terkadang, kita ingin menangani berbagai jenis exception dengan cara berbeda. Caranya? Pakai multiple catch
!
using System;
class Program {
static void Main() {
try {
int[] angka = {1, 2, 3};
Console.WriteLine(angka[5]); // Error: IndexOutOfRangeException
}
catch (IndexOutOfRangeException e) {
Console.WriteLine("Kesalahan: Mengakses indeks di luar batas array!");
}
catch (Exception e) {
Console.WriteLine("Terjadi error lain: " + e.Message);
}
}
}
Output:
Kesalahan: Mengakses indeks di luar batas array!
Kenapa pakai Exception
di catch
terakhir?
Exception
adalah induk dari semua exception.- Berguna untuk menangkap error yang tidak kita prediksi sebelumnya.
4. Finally: Eksekusi Kode Apapun yang Terjadi
Kadang kita ingin menjalankan kode tertentu, baik ada error atau tidak. Di sinilah finally
berguna!
using System;
class Program {
static void Main() {
try {
int x = int.Parse("abc"); // Error: FormatException
}
catch (FormatException e) {
Console.WriteLine("Input bukan angka!");
}
finally {
Console.WriteLine("Program selesai.");
}
}
}
Output:
Input bukan angka!
Program selesai.
Kenapa finally
penting?
- Biasanya digunakan untuk menutup file, koneksi database, atau membersihkan resource lainnya.
- Akan dieksekusi terlepas dari ada atau tidaknya error.
5. Membuat Custom Exception
Selain exception bawaan C#, kita juga bisa membuat custom exception untuk kebutuhan khusus.
using System;
class DataTidakValidException : Exception {
public DataTidakValidException(string pesan) : base(pesan) {}
}
class Program {
static void Main() {
try {
throw new DataTidakValidException("Data yang dimasukkan tidak sesuai format!");
}
catch (DataTidakValidException e) {
Console.WriteLine("Custom Exception: " + e.Message);
}
}
}
Output:
Custom Exception: Data yang dimasukkan tidak sesuai format!
Kenapa pakai custom exception?
- Biar lebih spesifik dan mudah di-debug.
- Bisa memberi pesan error yang lebih jelas sesuai kebutuhan aplikasi.
6. Kapan Harus Menggunakan Exception Handling?
✅ Gunakan exception handling jika:
- Program kamu sering berinteraksi dengan input pengguna, file, atau database.
- Mau menangani error tanpa membuat program langsung berhenti.
- Ingin memberikan pesan error yang lebih jelas kepada pengguna.
❌ Jangan gunakan exception handling jika:
- Kamu bisa menangani masalah lebih baik dengan validasi data sebelum error terjadi.
- Hanya untuk menampilkan pesan error tanpa penanganan lebih lanjut.
7. Kesimpulan
- Exception handling digunakan untuk menangani error runtime dalam C# tanpa membuat program crash.
- Blok
try-catch
menangkap error dan mencegah program berhenti secara tiba-tiba. - Multiple
catch
bisa menangani berbagai jenis error. - Gunakan
finally
untuk memastikan kode tertentu selalu dijalankan. - Bisa membuat custom exception untuk kebutuhan khusus.
Dengan memahami exception handling dalam C#, kamu bisa bikin program yang lebih stabil, aman, dan nggak gampang crash!