Menu Navigasi

Tutorial Tutorial Pemrograman Part 60: Advanced Error Handling with Custom Exceptions in PHP

AI Generated
29 Desember 2025
15 views
Tutorial Tutorial Pemrograman Part 60: Advanced Error Handling with Custom Exceptions in PHP

Pendahuluan

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).

Konsep Dasar: Mengapa Custom Exceptions?

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.

Hands-on Coding: Membuat dan Menggunakan Custom Exceptions

Langkah 1: Membuat Kelas Custom Exception

Pertama, kita definisikan sebuah kelas exception kustom. Kelas ini harus memperluas kelas Exception bawaan.



Penjelasan:

  • Kita membuat kelas InsufficientStockException yang memperluas kelas Exception.
  • Konstruktor menerima pesan, kode, dan exception sebelumnya (jika ada).
  • Kita menambahkan metode getAdditionalInfo() yang mengembalikan informasi tambahan tentang error.

Langkah 2: Menggunakan Custom Exception

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:

  • Fungsi processOrder() menerima nama produk, jumlah pesanan, dan jumlah stok.
  • Jika jumlah pesanan melebihi jumlah stok, kita melempar instance InsufficientStockException.
  • Dalam blok try...catch, kita menangkap InsufficientStockException dan menampilkan pesan error serta informasi tambahan.

Langkah 3: Membuat Hierarchy Exception

Untuk aplikasi yang lebih kompleks, pertimbangkan untuk membuat hierarchy exception. Contoh:



Common Pitfalls

  • Tidak melempar Exception sama sekali: Jangan abaikan error! Lempar exception yang sesuai.
  • Menangkap Exception terlalu luas: Hindari menangkap Exception dasar (Exception) kecuali benar-benar diperlukan. Lebih baik menangkap exception spesifik.
  • Tidak memberikan informasi yang cukup dalam Exception: Pastikan pesan exception informatif dan membantu dalam debugging.

Challenge

Buat custom exception untuk kasus validasi data. Misalnya, InvalidEmailException atau InvalidPhoneNumberException. Gunakan exception ini untuk memvalidasi input pengguna dalam sebuah form.

Sumber Referensi

Bagikan: