Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mengumpul dan memproses maklumat ralat dalam pembangunan bahasa PHP

Bagaimana untuk mengumpul dan memproses maklumat ralat dalam pembangunan bahasa PHP

PHPz
PHPzasal
2023-06-10 08:54:07815semak imbas

PHP ialah bahasa pengaturcaraan yang digunakan secara meluas untuk membangunkan aplikasi web. Walau bagaimanapun, semasa proses pembangunan, kami sering menghadapi pelbagai ralat dan pengecualian, dan mesej ralat ini biasanya sangat berguna kepada pembangun. Artikel ini akan memperkenalkan cara mengumpul dan memproses maklumat ralat dengan berkesan dalam pembangunan PHP, membolehkan anda mengurus kod anda dengan lebih baik dan meningkatkan kualiti kod.

1. Jenis mesej ralat

Dalam pembangunan PHP, jenis mesej ralat biasa adalah seperti berikut:

1. Ini ialah mesej ralat yang disebabkan oleh ralat sintaks kod, seperti kurungan tidak tertutup, koma bertitik hilang, dsb. Mesej ralat jenis ini biasanya dicetak terus oleh penterjemah PHP.

2. Ralat masa jalan. Ini merujuk kepada mesej ralat yang berlaku semasa melaksanakan kod, seperti fail yang boleh dibaca dan boleh ditulis yang tidak wujud, kegagalan sambungan pangkalan data, dsb.

3. Ini merujuk kepada mesej amaran yang muncul semasa pelaksanaan kod dan biasanya bermakna terdapat beberapa masalah, tetapi ia tidak serius.

4. Ini merujuk kepada masalah serius yang berlaku semasa pelaksanaan kod, menyebabkan kod gagal dilaksanakan, seperti limpahan memori, panggilan fungsi tidak ditentukan, dsb.

2. Fungsi pengendalian ralat dalam PHP

PHP menyediakan beberapa fungsi pengendalian ralat terbina dalam yang boleh membantu pembangun mengumpul dan mengurus mesej ralat dengan lebih baik. Berikut ialah beberapa fungsi pengendalian ralat biasa:

fungsi 1.error_reporting(). Fungsi ini digunakan untuk menetapkan tahap pelaporan ralat, membenarkan pembangun mengawal jenis mesej ralat yang dilaporkan.

fungsi 2.set_error_handler(). Fungsi ini digunakan untuk menetapkan fungsi pengendalian ralat tersuai, yang membolehkan pembangun mengumpul dan memproses semua mesej ralat.

fungsi 3.set_exception_handler(). Fungsi ini digunakan untuk menetapkan fungsi pengendalian pengecualian tersuai, yang membolehkan pembangun mengumpul dan mengendalikan semua pengecualian.

fungsi 4.restore_error_handler() dan restore_exception_handler(). Fungsi ini digunakan untuk memulihkan ralat lalai dan fungsi pengendalian pengecualian.

3. Cara mengumpul dan merekod mesej ralat

Mari kita lihat cara mengumpul dan merekod mesej ralat dalam pembangunan PHP.

1 Dalam persekitaran pengeluaran, kita harus mematikan semua output ralat untuk mengelak daripada mendedahkan maklumat sensitif kepada pengguna akhir. Untuk melakukan ini, kami boleh menetapkan pilihan berikut dalam fail konfigurasi PHP.

display_errors = Off
log_errors = On
error_log = /var/log/php-errors.log

2. Jika anda ingin mengeluarkan mesej ralat dalam persekitaran pembangunan, anda harus menetapkan pilihan berikut.

display_errors = On

3. Kami juga boleh menggunakan fungsi pengendalian ralat PHP untuk mengumpul dan mencatat mesej ralat. Berikut adalah contoh.

// 定义自定义错误处理函数
function custom_error_handler($errno, $errstr, $errfile, $errline) {
    // 将错误消息写入日志文件
    error_log("[$errno] $errstr on line $errline in $errfile");
    // 在浏览器中输出错误消息
    echo "Oops! Something went wrong!";
    // 停止脚本执行
    exit(1);
}

// 设置自定义错误处理函数
set_error_handler("custom_error_handler");

// 触发错误
$file = fopen("nonexistentfile.txt", "r");

Fungsi pengendalian ralat ini akan mencatatkan mesej ralat apabila ralat berlaku, memaparkan "Op! Ada masalah dalam penyemak imbas, dan kemudian menghentikan pelaksanaan skrip!"

4. Cara menganalisis dan membalas mesej ralat

Apabila mesej ralat dikumpulkan, kami perlu menganalisis dan bertindak balas dengan sewajarnya.

1 Dalam persekitaran pengeluaran, kami boleh menulis mesej ralat untuk log fail untuk penyelesaian masalah. Untuk melakukan ini, kita boleh menggunakan fungsi error_log PHP atau perpustakaan pengelogan pihak ketiga seperti Monolog.

2 Dalam persekitaran pembangunan, kami boleh mengeluarkan mesej ralat terus ke penyemak imbas untuk mencari dan menyelesaikan masalah dengan lebih cepat.

3. Untuk ralat maut yang teruk, kita perlu menghentikan pelaksanaan skrip untuk mengelakkan kerosakan selanjutnya.

4. Untuk beberapa ralat yang tidak membawa maut, kita boleh mengabaikan atau memulihkannya dalam keadaan tertentu. Untuk melakukan ini, kita boleh menggunakan pernyataan cuba-tangkap PHP untuk mengendalikan pengecualian.

try {
    // 执行代码
} catch (Exception $e) {
    // 处理异常
}

Dalam contoh ini, kita boleh mengendalikan pengecualian dalam blok tangkapan, seperti pengelogan, memaparkan mesej ralat, menyambung semula pelaksanaan kod, dsb.

5. Kesimpulan

Mengumpul dan memproses mesej ralat adalah bahagian penting dalam mana-mana bahasa pengaturcaraan. Dalam PHP, kami boleh menggunakan fungsi pengendalian ralat terbina dalam dan perpustakaan pengelogan untuk mengurus maklumat ralat untuk meningkatkan kebolehbacaan dan kebolehpercayaan kod. Dengan mematikan output mesej ralat dalam persekitaran pengeluaran, kami boleh melindungi keselamatan data pengguna. Semasa fasa pembangunan, kami boleh menyahpepijat kod kami dengan cepat dengan mencetak mesej ralat terus ke dalam penyemak imbas. Ringkasnya, pengendalian ralat adalah bahagian penting dalam pembangunan PHP dan perlu diambil serius.

Atas ialah kandungan terperinci Bagaimana untuk mengumpul dan memproses maklumat ralat dalam pembangunan bahasa 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