Terdapat dua corak reka bentuk untuk pengendalian pengecualian PHP: Pengendalian pengecualian berorientasikan objek: gunakan blok cuba-tangkap untuk menangkap jenis pengecualian tertentu. Pengendalian pengecualian prosedural: Gunakan fungsi set_exception_handler untuk menetapkan fungsi pengendalian pengecualian global untuk mengendalikan semua pengecualian yang tidak ditangkap. Pilihan corak reka bentuk bergantung pada keperluan aplikasi: pengendalian pengecualian berorientasikan objek menyediakan pendekatan yang lebih berstruktur, dan pengendalian pengecualian prosedur menyediakan pendekatan yang lebih umum.
Pengendalian Pengecualian PHP: Ceramah Ringkas tentang Corak Reka Bentuk Pengendalian Pengecualian
Pengendalian pengecualian ialah aspek yang sangat penting dalam aplikasi PHP. Ia membolehkan anda bertindak balas dengan anggun kepada peristiwa yang tidak dijangka, menghalang ranap aplikasi dan memberikan maklumat yang berguna.
Corak reka bentuk pengendalian pengecualian
PHP menyediakan dua corak reka bentuk pengendalian pengecualian:
try-catch
untuk menangkap dan mengendalikan pengecualian. try-catch
块来捕获和处理异常。set_exception_handler
函数设置一个全局异常处理函数。面向对象异常处理
面向对象异常处理提供了一个结构化的方式来处理异常。它遵循以下步骤:
try
块包裹可能抛出异常的代码。catch
块捕获特定类型的异常。catch
块中处理异常。代码示例:
try { // 代码可能抛出异常 } catch (Exception $e) { // 处理异常 }
过程化异常处理
过程化异常处理提供了一个更通用的方法来处理异常。它使用 set_exception_handler
函数设置一个全局异常处理函数。该函数将被用来处理所有未捕获的异常。
代码示例:
set_exception_handler(function (Exception $e) { // 处理异常 }); // 代码可能抛出异常
实战案例
假设您有一个 PHP 应用程序,它从数据库中读取数据并进行处理。如果您尝试从一个不存在的数据库中读取数据,您将收到一个 PDOException
: Gunakan fungsi set_exception_handler
untuk menetapkan fungsi pengendalian pengecualian global. Pengendalian pengecualian berorientasikan objek
Pengendalian pengecualian berorientasikan objek menyediakan cara berstruktur untuk mengendalikan pengecualian. Ia mengikut langkah berikut:
try
untuk membalut kod yang mungkin mengeluarkan pengecualian. Tangkap jenis pengecualian tertentu menggunakan blok catch
. Kendalikan pengecualian dalam blok catch
.
try { $db = new PDO(...); $data = $db->query('SELECT * FROM non_existent_table'); } catch (PDOException $e) { // 处理 PDO 异常 }
set_exception_handler
untuk menetapkan pengendali pengecualian global. Fungsi ini akan digunakan untuk mengendalikan semua pengecualian yang tidak ditangkap. 🎜🎜Contoh Kod: 🎜set_exception_handler(function (Exception $e) { if ($e instanceof PDOException) { // 处理 PDO 异常 } }); $db = new PDO(...); $data = $db->query('SELECT * FROM non_existent_table');
PDOException
. Anda boleh menggunakan kod berikut untuk mengendalikan pengecualian ini: 🎜🎜🎜Pengendalian pengecualian berorientasikan objek: 🎜🎜rrreee🎜🎜Pengendalian pengecualian prosedur: 🎜🎜rrreee🎜🎜Pilih corak reka bentuk 🎜🎜tergantung pada pengendalian reka bentuk yang anda pilih keperluan permohonan anda. Pengendalian pengecualian berorientasikan objek menyediakan pendekatan yang lebih berstruktur, manakala pengendalian pengecualian prosedur menyediakan pendekatan yang lebih umum. 🎜Atas ialah kandungan terperinci Pengendalian pengecualian PHP: perbincangan ringkas tentang corak reka bentuk pengendalian pengecualian. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!