Adakah anda tahu bagaimana untuk menyesuaikan fungsi pengendalian ralat dan menutup ralat dalam PHP?

WBOY
Lepaskan: 2023-04-10 18:12:02
asal
2545 orang telah melayarinya

Dalam artikel sebelumnya, kami membawakan anda "Membawa anda memahami jenis ralat dan tahap ralat PHP", yang memperkenalkan jenis ralat dan tahap ralat dalam PHP secara terperinci Dalam artikel ini, kami Mari kita lihat cara menyesuaikan pengendalian ralat dan cara menyekat ralat dalam PHP. Saya harap ia akan membantu semua orang!

Adakah anda tahu bagaimana untuk menyesuaikan fungsi pengendalian ralat dan menutup ralat dalam PHP?

Dalam pembangunan harian kita, tidak dapat dielakkan untuk menghadapi ralat Kadangkala kita boleh menentukan fungsi sebagai fungsi pengendalian ralat. Terdapat ralat tersuai dalam fungsi pemprosesan PHP.

<strong><span style="font-size: 20px;">set_error_handler() </span></strong>Fungsi pengendalian ralat tersuai

PHP menyediakan fungsi set_error_handler(), yang digunakan untuk menentukan fungsi sebagai pengendalian ralat Fungsi, format sintaksnya adalah seperti berikut:

set_error_handler(自定义函数名 [, int $error_types = E_ALL | E_STRICT ])
Salin selepas log masuk

Format sintaks nama fungsi tersuai ini adalah seperti berikut:

error_handler(int 错误的级别 , string 错误的信息 [, string 发生错误的文件名 [, int 发生错误的行号 ]])
Salin selepas log masuk

Jika terdapat pengendali ralat yang ditakrifkan sebelum ini, Apakah dikembalikan ialah nama program program yang diubah suai; jika ia adalah pengendali ralat terbina dalam, hasil yang dikembalikan adalah NULL. Jika fungsi panggil balik yang tidak sah ditentukan, NULL juga akan dikembalikan.

Seterusnya mari kita lihat contoh untuk menyesuaikan fungsi pengendalian ralat dan gunakannya untuk mengendalikan ralat dalam atur cara contohnya:

<?php
    function error_handler($errno, $errstr, $errfile, $errline ) {
        echo "error number:".$errno."<br/>";
        echo "error msg:".$errstr."<br/>";
        echo "error file:".$errfile."<br/>";
        echo "error line:".$errline."<br/>";
        die(&#39;something error&#39;);
    }
    set_error_handler("error_handler");
    strpos();
?>
Salin selepas log masuk

Hasil keluaran:

Adakah anda tahu bagaimana untuk menyesuaikan fungsi pengendalian ralat dan menutup ralat dalam PHP?

Apa yang perlu kita perhatikan semasa menggunakan fungsi ini ialah kita hanya menggunakan kaedah ini untuk pengendalian ralat Jika fungsi itu tiada ralat , atau Program tidak berjalan dalam fungsi yang salah, dan atur cara akan terus melaksanakan penyataan fungsi di mana ralat berlaku, jadi kita perlu menggunakan fungsi die() untuk menamatkan fungsi.

Dalam pembangunan harian kami, pengecualian dalam program tidak boleh dibuang secara automatik Pada masa ini, kami juga boleh menggunakan set_error_handler() untuk menyesuaikan dan mengendalikan pengecualian sebagai ralat, supaya kami boleh menggunakan Sesuaikan. pengendalian ralat untuk menangkap pengecualian secara automatik.

Contoh adalah seperti berikut:

<?php
    function error_handler($errno, $errstr, $errfile, $errline ) {
        echo "error number:".$errno."<br/>";
        echo "error msg:".$errstr."<br/>";
        echo "error file:".$errfile."<br/>";
        echo "error line:".$errline."<br/>";
        die(&#39;something error&#39;);
    }
    set_error_handler("error_handler");
    /* 触发异常 */
    try {
        $a = 5/0;//程序会自动捕捉这个异常,并且由自定义函数来处理
        echo $a;
    } catch(Exception $e) {
        echo $e->getMessage();
    }
?>
Salin selepas log masuk

Hasil keluaran:

Adakah anda tahu bagaimana untuk menyesuaikan fungsi pengendalian ralat dan menutup ralat dalam PHP?

Ralat menutup

Dalam proses pembangunan PHP, kami bukan sahaja boleh menangani ralat dengan menyesuaikan fungsi pengendalian ralat melalui set_error_handler(), tetapi kami juga boleh menutup ralat dalam sesetengah kes, menutup ralat juga penting daripada. Seterusnya, saya akan menyenaraikan beberapa kaedah untuk melindungi ralat.

  • <span style="font-size: 16px;"><strong>@</strong></span>@

    ---Pengendali kawalan ralat


Dalam PHP, jika pengendali kawalan ralat @ diletakkan di hadapan ungkapan, sebarang ralat yang mungkin wujud dalam ungkapan akan disekat.


Mengenai penggunaan @, kita perlu ambil perhatian bahawa pengendali @ hanya akan berkuat kuasa apabila diletakkan di hadapan ungkapan Contohnya, pengendali @ boleh digunakan di hadapan pembolehubah, fungsi , pemalar, dsb. , tidak boleh diletakkan sebelum takrif fungsi atau kelas, dan ia juga tidak boleh diletakkan di hadapan pernyataan struktur bersyarat.

<?php
    $link = @mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db") or die(&#39;数据库连接失败!&#39;);
?>
Salin selepas log masuk
Contohnya adalah seperti berikut:


Hasil keluaran:Adakah anda tahu bagaimana untuk menyesuaikan fungsi pengendalian ralat dan menutup ralat dalam PHP?

  • Dalam contoh di atas, ia boleh dilihat Dengan pengendali kawalan @error, ungkapan boleh ditutup sebelum ungkapan.

    error_reporting() Gunakan fungsi

    untuk menutup ralat

error_reporting(设置错误级别)
Salin selepas log masuk

Terdapat banyak tahap ralat dalam PHP , gunakan fungsi error_reporting() untuk menetapkan jenis ralat yang akan dilaporkan oleh PHP Format sintaks fungsi adalah seperti berikut:
Mengenai tahap ralat, dalam artikel sebelumnya "

. membawa anda memahami jenis ralat PHP dan Tahap Ralat
<?php
    error_reporting(0);
    $link = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db") or die(&#39;数据库连接失败!&#39;);
?>
Salin selepas log masuk
" diperkenalkan dengan lebih terperinci. Seterusnya, mari kita lihat penggunaan fungsi tersebut melalui contoh:


Hasil keluaran: Adakah anda tahu bagaimana untuk menyesuaikan fungsi pengendalian ralat dan menutup ralat dalam PHP?

  • display_errorsRalat topeng melalui

    parameter

php.ini Kaedah ini adalah kaedah yang paling teliti lihat cara mengendalikannya.

Mula-mula kita perlu membuka fail konfigurasi, kemudian cari display_errors, tetapkan nilainya kepada Mati untuk mematikan semua pelaporan ralat PHP.

(Dalam artikel sebelumnya "Bagaimana untuk memuat naik fail dalam PHP? Anda akan faham selepas membacanya! " memperkenalkan pengetahuan yang berkaitan tentang cara membuang fail konfigurasi php dan ini)

Contohnya adalah seperti berikut:

Adakah anda tahu bagaimana untuk menyesuaikan fungsi pengendalian ralat dan menutup ralat dalam PHP?

Dengan cara ini anda boleh menyekat ralat.

Jika anda berminat, anda boleh klik pada "Tutorial Video PHP" untuk mengetahui lebih lanjut tentang pengetahuan PHP.

Atas ialah kandungan terperinci Adakah anda tahu bagaimana untuk menyesuaikan fungsi pengendalian ralat dan menutup ralat dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!