cari
Rumahpembangunan bahagian belakangtutorial phpDalam PHP, bagaimana menangani kesilapan dan kaedah panggilan C Apabila kaedah A Kaedah Panggilan B?

Dalam PHP, bagaimana menangani kesilapan dan kaedah panggilan C Apabila kaedah A Kaedah Panggilan B?

Pengendalian ralat dan mekanisme toleransi kesalahan dalam panggilan kaedah PHP

Artikel ini menerangkan cara untuk mengendalikan pengecualian dengan anggun yang Kaedah B boleh membuang apabila kaedah A Kaedah Panggilan B dalam PHP dan melaksanakan Kaedah C apabila ralat berlaku. Kami akan menunjukkan melalui contoh bagaimana menggunakan mekanisme pengendalian pengecualian PHP untuk membina kod yang mantap.

Katakan kita mempunyai kelas yang mengandungi tiga kaedah: a() , b() , dan c() . Matlamatnya adalah untuk memanggil b() dalam a() , dan jika b() kesilapan, kemudian laksanakan c() untuk pemprosesan ralat atau pemulihan.

Kod asal (terdedah kepada kesilapan):

 fungsi awam a () {
    $ this-> b ();
    $ this-> c ();
}

Terdapat masalah dengan kod ini: jika b() melemparkan pengecualian, c() tidak akan dilaksanakan.

Kod yang lebih baik (menggunakan pengendalian pengecualian):

 fungsi awam a () {
    Cuba {
        $ this-> b ();
    } tangkapan (\ excepe $ e) {
        // Rekod ralat log atau melakukan error_log lain ("kaedah b () gagal:". $ E-> getMessage ());
        $ this-> c ();
    }
}

Kod ini menggunakan try...catch blok. Jika b() melemparkan sebarang jenis pengecualian ( \Exception atau subkelasnya), blok catch akan menangkap pengecualian, log mesej ralat (mekanisme pembalakan yang lebih maju boleh digunakan), dan kemudian hubungi kaedah c() .

Mengendalikan ralat tertentu: Mengakses kekunci array yang tidak wujud

Kesalahan yang ditunjukkan dalam imej cuba mengakses kekunci array yang tidak wujud. Kami boleh mengelakkan kesilapan tersebut dengan menggunakan fungsi isset() atau fungsi array_key_exists() sebelum mengakses elemen array:

Kaedah b() bertambah baik:

 fungsi awam b () {
    $ arr = [];
    jika (array_key_exists ('kunci', $ arr)) {
        echo $ arr ['key'];
    } else {
        membuang baru \ pengecualian ("kunci array 'kekunci' tidak wujud.");
    }
}

Sekarang, jika 'key' tidak wujud dalam $arr , b() akan membuang pengecualian tersuai, ditangkap oleh blok catch dalam a() .

Pengendalian Ralat Lebih Lanjutan: Kelas Pengecualian Custom

Untuk mengendalikan pelbagai jenis kesilapan dengan lebih jelas, anda boleh membuat kelas pengecualian tersuai:

 Kelas ArrayKeyNotFoundException Extends \ Exception {}

fungsi awam b () {
    $ arr = [];
    jika (! array_key_exists ('kunci', $ arr)) {
        Buang ArrayKeyNotFoundException baru (kunci "kunci 'array tidak wujud.");
    }
    echo $ arr ['key'];
}

fungsi awam a () {
    Cuba {
        $ this-> b ();
    } menangkap (ArrayKeyNotFoundException $ e) {
        error_log ("Tidak ada pengecualian untuk kunci array:". $ e-> getMessage ());
        $ this-> c ();
    } tangkapan (\ excepe $ e) {
        error_log ("Pengecualian lain:". $ e-> getMessage ());
        // Mengendalikan jenis pengecualian lain}
}

Dengan menyesuaikan kelas pengecualian, pelbagai jenis kesilapan boleh dikendalikan dengan lebih tepat, meningkatkan kebolehbacaan dan pemeliharaan kod. Ini menjadikan ralat mengendalikan lebih fleksibel dan cekap.

Melalui kaedah di atas, kami dapat mengendalikan kesilapan secara berkesan dalam panggilan kaedah PHP dan melakukan pengendalian ralat atau operasi pemulihan yang sepadan seperti yang diperlukan, dengan itu membina aplikasi yang lebih mantap dan boleh dipercayai.

Atas ialah kandungan terperinci Dalam PHP, bagaimana menangani kesilapan dan kaedah panggilan C Apabila kaedah A Kaedah Panggilan B?. 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
ai合并图层的快捷键是什么ai合并图层的快捷键是什么Jan 07, 2021 am 10:59 AM

ai合并图层的快捷键是“Ctrl+Shift+E”,它的作用是把目前所有处在显示状态的图层合并,在隐藏状态的图层则不作变动。也可以选中要合并的图层,在菜单栏中依次点击“窗口”-“路径查找器”,点击“合并”按钮。

ai橡皮擦擦不掉东西怎么办ai橡皮擦擦不掉东西怎么办Jan 13, 2021 am 10:23 AM

ai橡皮擦擦不掉东西是因为AI是矢量图软件,用橡皮擦不能擦位图的,其解决办法就是用蒙板工具以及钢笔勾好路径再建立蒙板即可实现擦掉东西。

谷歌超强AI超算碾压英伟达A100!TPU v4性能提升10倍,细节首次公开谷歌超强AI超算碾压英伟达A100!TPU v4性能提升10倍,细节首次公开Apr 07, 2023 pm 02:54 PM

虽然谷歌早在2020年,就在自家的数据中心上部署了当时最强的AI芯片——TPU v4。但直到今年的4月4日,谷歌才首次公布了这台AI超算的技术细节。论文地址:https://arxiv.org/abs/2304.01433相比于TPU v3,TPU v4的性能要高出2.1倍,而在整合4096个芯片之后,超算的性能更是提升了10倍。另外,谷歌还声称,自家芯片要比英伟达A100更快、更节能。与A100对打,速度快1.7倍论文中,谷歌表示,对于规模相当的系统,TPU v4可以提供比英伟达A100强1.

ai可以转成psd格式吗ai可以转成psd格式吗Feb 22, 2023 pm 05:56 PM

ai可以转成psd格式。转换方法:1、打开Adobe Illustrator软件,依次点击顶部菜单栏的“文件”-“打开”,选择所需的ai文件;2、点击右侧功能面板中的“图层”,点击三杠图标,在弹出的选项中选择“释放到图层(顺序)”;3、依次点击顶部菜单栏的“文件”-“导出”-“导出为”;4、在弹出的“导出”对话框中,将“保存类型”设置为“PSD格式”,点击“导出”即可;

ai顶部属性栏不见了怎么办ai顶部属性栏不见了怎么办Feb 22, 2023 pm 05:27 PM

ai顶部属性栏不见了的解决办法:1、开启Ai新建画布,进入绘图页面;2、在Ai顶部菜单栏中点击“窗口”;3、在系统弹出的窗口菜单页面中点击“控制”,然后开启“控制”窗口即可显示出属性栏。

GPT-4的研究路径没有前途?Yann LeCun给自回归判了死刑GPT-4的研究路径没有前途?Yann LeCun给自回归判了死刑Apr 04, 2023 am 11:55 AM

Yann LeCun 这个观点的确有些大胆。 「从现在起 5 年内,没有哪个头脑正常的人会使用自回归模型。」最近,图灵奖得主 Yann LeCun 给一场辩论做了个特别的开场。而他口中的自回归,正是当前爆红的 GPT 家族模型所依赖的学习范式。当然,被 Yann LeCun 指出问题的不只是自回归模型。在他看来,当前整个的机器学习领域都面临巨大挑战。这场辩论的主题为「Do large language models need sensory grounding for meaning and u

AI抢饭碗成真!近500家美国企业用ChatGPT取代员工,有公司省下超10万美元AI抢饭碗成真!近500家美国企业用ChatGPT取代员工,有公司省下超10万美元Apr 07, 2023 pm 02:57 PM

自从ChatGPT掀起浪潮,不少人都在担心AI快要抢人类饭碗了。然鹅,现实可能更残酷QAQ......据就业服务平台Resume Builder调查统计,在1000多家受访美国企业中,用ChatGPT取代部分员工的,比例已达到惊人的48%。在这些企业中,有49%已经启用ChatGPT,还有30%正在赶来的路上。就连央视财经也为此专门发过一个报道:相关话题还曾一度冲上了知乎热榜,众网友表示,不得不承认,现在ChatGPT等AIGC工具已势不可挡——浪潮既来,不进则退。有程序员还指出:用过Copil

ai移动不了东西了怎么办ai移动不了东西了怎么办Mar 07, 2023 am 10:03 AM

ai移动不了东西的解决办法:1、打开ai软件,打开空白文档;2、选择矩形工具,在文档中绘制矩形;3、点击选择工具,移动文档中的矩形;4、点击图层按钮,弹出图层面板对话框,解锁图层;5、点击选择工具,移动矩形即可。

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

mPDF

mPDF

mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

PhpStorm versi Mac

PhpStorm versi Mac

Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.