Rumah > Artikel > rangka kerja php > Bagaimana untuk mengeluarkan maklumat ralat terperinci dalam thinkphp5
Apabila menggunakan ThinkPHP5 untuk pembangunan, atas pelbagai sebab, kita mungkin menghadapi pelbagai ralat, terutamanya semasa mengeluarkan halaman, beberapa ralat yang tidak dijangka mungkin berlaku Jika tiada mesej ralat terperinci, ia menjadi sukar untuk mencari di mana ralat itu terletak. Oleh itu, semasa proses pembangunan, kita perlu tahu cara mengeluarkan maklumat ralat terperinci.
1. Tetapkan mod nyahpepijat
ThinkPHP5 menyediakan mod nyahpepijat yang boleh membantu kami mengeluarkan maklumat ralat ke halaman secara terperinci. Dalam persekitaran pembangunan, kami boleh menghidupkan mod nyahpepijat untuk memudahkan pembangunan kami. Walau bagaimanapun, dalam persekitaran pengeluaran, kita perlu mematikan mod nyahpepijat untuk mengelakkan kebocoran maklumat sensitif.
Kaedah untuk menghidupkan mod nyahpepijat adalah seperti berikut:
Sudah tentu, dalam persekitaran pengeluaran kita perlu menukar pilihan ini kepada palsu untuk mengelakkan kebocoran maklumat sensitif.
2. Gunakan pengendalian pengecualian
Selain menetapkan mod nyahpepijat, kami juga boleh menggunakan pengendalian pengecualian untuk mengeluarkan maklumat ralat terperinci.
Dalam ThinkPHP5, pengecualian ialah konsep yang sangat penting Sebarang mesej ralat dikeluarkan melalui pengecualian. Oleh itu, kita perlu belajar cara menggunakan pengecualian untuk mengeluarkan maklumat ralat terperinci.
Dalam ThinkPHP5, pengecualian dibahagikan kepada tiga jenis:
1) thinkException: kelas pengecualian biasa, biasanya digunakan untuk sekatan logik perniagaan, mewarisi kelas Exception yang disertakan dengan PHP.
2) thinkexceptionHttpException: Kelas pengecualian HTTP, digunakan untuk pengecualian yang berkaitan dengan permintaan HTTP.
3) thinkexceptionValidateException: kelas pengecualian pengesahan, digunakan untuk melontar apabila pengesah gagal mengesahkan.
Dalam atur cara, jika ralat berlaku, kita boleh membuang pengecualian untuk menghentikan atur cara dan mengeluarkan mesej ralat. Berikut ialah contoh kod mudah:
if(!$result) { throw new \Exception('错误信息'); }
Kod ini akan membuang pengecualian dan mengeluarkan mesej ralat apabila $result adalah palsu.
Dalam kod, kita boleh menangkap pengecualian melalui percubaan...tangkap blok pernyataan dan maklumat ralat output. Berikut ialah contoh kod mudah:
try { // 可能会抛出异常的代码 } catch (\Exception $e) { echo $e->getMessage(); }
Kod ini akan melaksanakan kod dalam blok pernyataan cuba Jika pengecualian berlaku semasa pelaksanaan, ia akan ditangkap oleh blok pernyataan tangkapan dan mesej ralat akan menjadi output.
3. Gunakan log untuk merekod maklumat ralat
Selain daripada dua kaedah di atas, kami juga boleh menggunakan log untuk merekod maklumat ralat. Kami tidak akan memperkenalkan terlalu banyak tentang sistem pengelogan ThinkPHP5 di sini, kami hanya akan menerangkan cara menggunakan pengelogan untuk merekod maklumat ralat.
Dalam fail app.php dalam direktori konfigurasi, kita boleh mencari item konfigurasi log dan menetapkan pemacu log dan laluan storan log dan lain-lain yang berkaitan konfigurasi.
Dalam kod, kita boleh menggunakan kelas Log untuk merekod log. Berikut ialah contoh kod mudah:
use think\facade\Log; try { // 可能会抛出异常的代码 } catch (\Exception $e) { Log::error('错误信息:'.$e->getMessage()); }
Kod ini akan melaksanakan kod dalam blok pernyataan cuba Jika pengecualian berlaku semasa pelaksanaan, ia akan ditangkap oleh blok pernyataan tangkapan dan menggunakan kelas Log untuk merekod maklumat ralat.
Ringkasan
Di atas adalah beberapa kaedah untuk ThinkPHP5 untuk mengeluarkan maklumat ralat Kita boleh memilih kaedah yang berbeza untuk mengeluarkan maklumat ralat terperinci mengikut situasi tertentu, yang memudahkan kita untuk membangunkan dan nyahpepijat. Semasa proses pembangunan, terutamanya apabila mengeluarkan halaman, kita perlu memberi perhatian kepada keselamatan dan kebolehbacaan, dan cuba untuk tidak mengeluarkan terlalu banyak maklumat sensitif untuk mengelakkan serangan berniat jahat.
Atas ialah kandungan terperinci Bagaimana untuk mengeluarkan maklumat ralat terperinci dalam thinkphp5. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!