Selamat datang di part 60 seri tutorial pemrograman PHP! Kali ini, kita akan menyelami error handling tingkat lanjut dengan custom exceptions. Exception handling adalah aspek penting dalam membuat aplikasi yang robust dan mudah dipelihara. Di part sebelumnya, kita telah mempelajari tentang Generators. Sekarang, kita akan meningkatkan kemampuan kita menangani error. Prasyarat untuk tutorial ini adalah pemahaman dasar tentang exception handling di PHP (try, catch, throw) dan konsep OOP (Object-Oriented Programming).
PHP memiliki beberapa exception bawaan seperti Exception, InvalidArgumentException, dll. Namun, seringkali kita memerlukan cara yang lebih spesifik untuk menangani error di aplikasi kita. Disinilah custom exceptions berperan. Bayangkan kamu sedang membangun sistem e-commerce. Kamu mungkin ingin menangani error 'Stok Tidak Cukup' secara berbeda dari error 'Pembayaran Gagal'. Custom exceptions memungkinkan kita membuat kelas exception sendiri yang mencerminkan logika bisnis aplikasi kita.
Pertama, kita definisikan sebuah kelas exception kustom. Kelas ini harus memperluas kelas Exception bawaan.
Penjelasan:
InsufficientStockException yang memperluas kelas Exception.getAdditionalInfo() yang mengembalikan informasi tambahan tentang error.Sekarang, mari kita gunakan custom exception ini dalam sebuah fungsi.
$quantityInStock) {
throw new InsufficientStockException("Tidak dapat memproses pesanan " . $productName . ". Stok tidak mencukupi.");
}
// Logika pemrosesan pesanan di sini
echo "Pesanan " . $productName . " berhasil diproses.";
}
// Contoh penggunaan
try {
processOrder("Laptop", 5, 3);
} catch (InsufficientStockException $e) {
echo "Terjadi kesalahan: " . $e->getMessage() . "
";
echo $e->getAdditionalInfo() . "
";
echo "Kode error: " . $e->getCode() . "
";
}
?>
Penjelasan:
processOrder() menerima nama produk, jumlah pesanan, dan jumlah stok.InsufficientStockException.try...catch, kita menangkap InsufficientStockException dan menampilkan pesan error serta informasi tambahan.Untuk aplikasi yang lebih kompleks, pertimbangkan untuk membuat hierarchy exception. Contoh:
Exception) kecuali benar-benar diperlukan. Lebih baik menangkap exception spesifik.Buat custom exception untuk kasus validasi data. Misalnya, InvalidEmailException atau InvalidPhoneNumberException. Gunakan exception ini untuk memvalidasi input pengguna dalam sebuah form.