Rumah >rangka kerja php >ThinkPHP >Bagaimana untuk mengeluarkan maklumat ralat terperinci dalam thinkphp5
1. Tetapkan mod nyahpepijat
Menggunakan mod nyahpepijat, ThinkPHP5 boleh mengeluarkan maklumat ralat terperinci pada halaman. 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:
Buka fail app.php dalam direktori konfigurasi, cari pilihan nyahpepijat dan tetapkannya kepada benar.
Buka fail index.php dalam direktori awam, cari pilihan APP_DEBUG dan tetapkannya kepada benar.
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.
Pengecualian
Dalam ThinkPHP5, pengecualian ialah konsep yang penting. Sebarang mesej ralat disediakan dengan mengeluarkan 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.
Lemparkan pengecualian
Apabila ralat berlaku dalam atur cara, kita boleh membuang pengecualian untuk menghentikan atur cara berjalan dan mengeluarkan ralat mesej. Berikut ialah contoh kod mudah:
if(!$result) { throw new \Exception('错误信息'); }
Kod ini akan membuang pengecualian dan mengeluarkan mesej ralat apabila $result adalah palsu.
Tangkap pengecualian
Menggunakan blok pernyataan cuba...tangkap untuk menangkap pengecualian dan mencetak maklumat ralat ialah kaedah yang biasa digunakan dalam kod. Berikut ialah contoh kod ringkas:
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 dikeluarkan .
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 sistem pengelogan ThinkPHP5 secara terperinci, tetapi hanya menerangkan cara menggunakan log untuk merekod maklumat ralat.
Mengkonfigurasi log
Dalam fail app.php dalam direktori konfigurasi, kita boleh mencari item konfigurasi log dan menetapkan pemacu log dan log Laluan storan dan konfigurasi lain yang berkaitan.
Pengelogan
Dalam kod, kita boleh menggunakan kelas Log untuk merekodkan 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.
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!