Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk menangkap dan mengendalikan pengecualian tersuai dalam PHP?

Bagaimana untuk menangkap dan mengendalikan pengecualian tersuai dalam PHP?

PHPz
PHPzasal
2024-05-09 22:00:031239semak imbas

Cara menangkap dan mengendalikan pengecualian tersuai dalam PHP: Warisi kelas Pengecualian untuk mencipta pengecualian tersuai. Gunakan kata kunci lontaran untuk membuang pengecualian tersuai. Gunakan cuba, tangkap, dan akhirnya sekat untuk menangkap dan mengendalikan pengecualian.

如何在 PHP 中捕获和处理自定义异常?

Cara menangkap dan mengendalikan pengecualian tersuai dalam PHP

Pengenalan
Mengendalikan pengecualian dalam PHP adalah penting untuk membina aplikasi yang mantap dan boleh diselenggara. Pengecualian tersuai membolehkan anda membuat pengecualian yang disesuaikan dengan ralat tertentu atau situasi luar biasa dalam kod anda. Artikel ini akan membimbing anda melalui cara menangkap dan mengendalikan pengecualian tersuai, dan menyediakan kes praktikal untuk menunjukkan penggunaannya.

Buat pengecualian tersuai
Untuk mencipta pengecualian tersuai, warisi kelas terbina dalam Exception menggunakan kata kunci extends dan tentukan pembina untuk menerima mesej ralat dan Pilihan kod pengecualian: extends 关键字继承内置的 Exception 类,并定义一个构造函数来接收错误消息和可选的异常代码:

class MyCustomException extends Exception
{
    public function __construct($message, $code = 0)
    {
        parent::__construct($message, $code);
    }
}

抛出自定义异常
当在代码中遇到需要抛出自定义异常的情况时,请使用 throw 关键字,后跟自定义异常类的实例:

throw new MyCustomException("错误消息");

捕获和处理异常
使用 trycatchfinally 块来捕获和处理异常:

try {
    // 代码可能会抛出异常
} catch (MyCustomException $e) {
    // 处理 MyCustomException 异常
} catch (Exception $e) {
    // 处理所有其他异常
} finally {
    //无论是否抛出异常都会执行此块
}

实战案例
考虑一个简单的数学函数,它计算两个数字之和。如果其中任一数字为负数,则抛出 NegativeNumberException 异常:

NegativeNumberException 类:

class NegativeNumberException extends MyCustomException
{
    public function __construct($message = "不能对负数求和")
    {
        parent::__construct($message);
    }
}

数学函数:

function sum($a, $b)
{
    if ($a < 0 || $b < 0) {
        throw new NegativeNumberException();
    }

    return $a + $b;
}

使用:

try {
    $result = sum(-1, 2);
} catch (NegativeNumberException $e) {
    echo $e->getMessage();
} catch (Exception $e) {
    echo $e->getMessage();
}

输出:

不能对负数求和

结论
在 PHP 中捕获和处理自定义异常对构建健壮可靠的应用程序至关重要。通过继承 Exception 类并使用 trycatchfinallyrrreee

🎜Lempar pengecualian tersuai🎜🎜Apabila anda menghadapi situasi dalam kod yang perlu membuang pengecualian tersuai, sila gunakan kata kunci lempar, diikuti dengan contoh pengecualian tersuai kelas : 🎜rrreee🎜🎜Menangkap dan mengendalikan pengecualian🎜🎜Gunakan blok cuba, tangkap dan akhirnya untuk menangkap dan mengendalikan pengecualian: 🎜rrreee 🎜🎜Praktikal Kes🎜🎜Pertimbangkan fungsi matematik mudah yang mengira hasil tambah dua nombor. Jika mana-mana nombor adalah negatif, NegativeNumberException dilemparkan Exception: 🎜🎜🎜NegativeNumberException Class: 🎜🎜rrreee🎜🎜Fungsi matematik: 🎜🎜rrreee🎜🎜Penggunaan: 🎜🎜Penggunaan: 🎜🎜rreee: 🎜🎜Penggunaan: 🎜🎜 🎜 🎜rrreee🎜 🎜Kesimpulan🎜🎜Menangkap dan mengendalikan pengecualian tersuai dalam PHP adalah penting untuk membina aplikasi yang mantap dan boleh dipercayai. Anda boleh membuat ralat khusus untuk kod anda dengan mewarisi daripada kelas Exception dan menggunakan try, catch dan finally menyekat strategi pemprosesan. 🎜

Atas ialah kandungan terperinci Bagaimana untuk menangkap dan mengendalikan pengecualian tersuai dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn