Selain penanganan error klasik, PHP modern menyediakan mekanisme yang lebih terstruktur untuk menangani kesalahan, yaitu PHP Exception dengan blok try...catch. Pendekatan ini membuat penanganan kesalahan lebih rapi dan terpusat, terutama saat bekerja dengan database, file, atau API.
Apa Itu Exception?
Exception adalah “objek kesalahan” yang dilempar (thrown) ketika sesuatu tidak berjalan sesuai harapan. Alih-alih membiarkan skrip berhenti dengan pesan error yang menakutkan, kita bisa “menangkap” exception dan meresponnya dengan elegan.
Struktur try…catch
Kode yang berisiko diletakkan di dalam try. Jika terjadi exception, alur langsung melompat ke blok catch:
<?php
try {
$hasil = 10 / 0; // memicu kesalahan
} catch (Exception $e) {
echo "Terjadi kesalahan: " . $e->getMessage();
}
?>
Melempar Exception Sendiri dengan throw
Anda bisa memicu exception secara sengaja ketika suatu kondisi tidak terpenuhi:
<?php
function bagi($a, $b) {
if ($b == 0) {
throw new Exception("Pembagi tidak boleh nol");
}
return $a / $b;
}
try {
echo bagi(10, 0);
} catch (Exception $e) {
echo $e->getMessage(); // Pembagi tidak boleh nol
}
?>
Blok finally
Kode di dalam finally selalu dijalankan, baik terjadi exception maupun tidak. Ini berguna untuk membersihkan sumber daya seperti menutup koneksi atau file:
<?php
try {
// proses data
} catch (Exception $e) {
echo "Gagal: " . $e->getMessage();
} finally {
echo "Proses selesai.";
}
?>
Kapan Memakai Exception?
Gunakan PHP Exception untuk kesalahan yang “bisa diperkirakan” namun berada di luar kendali normal — misalnya koneksi database gagal, file tidak ditemukan, atau respons API tidak valid. Ini membuat kode utama tetap bersih dan penanganan error terpusat.
Kesalahan Umum
- Menangkap Exception tapi tidak melakukan apa-apa, sehingga masalah tersembunyi.
- Menampilkan getMessage() mentah ke pengguna di produksi, yang bisa membocorkan detail teknis.
Kesimpulan
Dengan PHP Exception dan try...catch...finally, penanganan kesalahan menjadi lebih terstruktur dan andal. Teknik ini adalah standar dalam pengembangan PHP modern dan wajib dikuasai sebelum bekerja dengan database atau layanan eksternal.
Referensi: untuk penjelasan lebih mendalam, kunjungi dokumentasi resmi PHP (php.net).

