Rumah >pembangunan bahagian belakang >tutorial php >Pengendalian pengecualian dan teknologi pengelogan ralat dalam PHP

Pengendalian pengecualian dan teknologi pengelogan ralat dalam PHP

WBOY
WBOYasal
2023-05-11 08:51:051517semak imbas

PHP ialah bahasa pengaturcaraan yang digunakan secara meluas dalam pembangunan web Dalam proses pembangunan program, pengendalian pengecualian dan pengelogan ralat adalah sangat penting. Artikel ini akan memperkenalkan pengendalian pengecualian dan teknologi pengelogan ralat dalam PHP untuk membantu pembaca mengukuhkan pemahaman mereka dan keupayaan praktikal pembangunan PHP.

1. Pengendalian Pengecualian

1.1 Konsep Pengecualian

Dalam pembangunan program, pengecualian bermaksud program menghadapi ralat atau situasi yang tidak dapat dikendalikan secara normal semasa pelaksanaan, menyebabkan program untuk gagal. Contohnya, fail tidak wujud, ralat sambungan rangkaian, ralat pertanyaan pangkalan data, dsb., yang boleh menyebabkan pengecualian program.

1.2 Pengendalian pengecualian

Dalam PHP, cara mengendalikan pengecualian adalah dengan membuang pengecualian. Apabila program menghadapi pengecualian, ia boleh memberitahu kod lapisan atas bahawa pengecualian telah berlaku dengan membuang pengecualian. Kod lapisan atas boleh menggunakan pernyataan cuba-tangkap untuk menangkap dan mengendalikan pengecualian untuk memastikan operasi normal program.

Berikut ialah contoh kod mudah:

try {
    // 执行可能会抛出异常的代码
} catch(Exception $e) {
    // 处理异常
}

Antaranya, kod dalam blok cuba ialah kod yang mungkin membuang pengecualian, dan kod dalam blok tangkapan digunakan untuk mengendalikan pengecualian.

1.3 Kelas pengecualian

Dalam PHP, semua pengecualian ialah subkelas kelas Pengecualian. Apabila program menghadapi pengecualian, ia boleh memberitahu kod lapisan atas bahawa pengecualian sedang ditemui dengan melemparkan Exception dan objek subkelasnya Kod lapisan atas boleh menggunakan pernyataan cuba-tangkap untuk menangkap dan mengendalikannya.

Kelas pengecualian mempunyai kaedah biasa berikut:

  • getMessage(): Mengembalikan mesej pengecualian.
  • getCode(): Mengembalikan kod pengecualian.
  • getFile(): Mengembalikan nama fail yang menyebabkan pengecualian.
  • getLine(): Mengembalikan bilangan baris kod yang menyebabkan pengecualian.
  • getTrace(): Mengembalikan maklumat jejak balik pengecualian.
  • getPrevious(): Mengembalikan objek pengecualian sebelumnya dalam rantai pengecualian.

1.4 Pengecualian tersuai

Dalam PHP, kami boleh menyesuaikan kelas pengecualian untuk mengendalikan pengecualian yang berlaku dalam program. Kelas pengecualian tersuai perlu mewarisi kelas Pengecualian, dan logik pengendalian pengecualian khusus boleh dilaksanakan dengan melaksanakan kaedah khusus dalam kelas pengecualian tersuai.

Berikut ialah contoh kelas pengecualian tersuai mudah:

class MyException extends Exception {
    public function __construct($message, $code = 0) {
        parent::__construct($message, $code);
    }

    public function __toString() {
        return __CLASS__ . ": [{$this->code}]: {$this->message}
";
    }

    public function customFunction() {
        echo "This is a custom function of MyException";
    }
}

Dalam kelas pengecualian tersuai, kaedah dan sifat khusus boleh dilaksanakan seperti yang diperlukan.

2. Ralat pengelogan

2.1 Konsep log ralat

Dalam pembangunan program, ralat merujuk kepada masalah yang dihadapi semasa pelaksanaan program, tetapi masalah ini tidak akan menyebabkan Program membuang pengecualian , yang secara langsung menyebabkan program ranap atau menghasilkan keputusan yang salah. Contohnya, pembolehubah tidak ditentukan, tatasusunan berada di luar sempadan, fail tidak boleh dibuka, dsb. Ini biasanya dipanggil ralat.

Log ralat merekodkan maklumat ralat semasa menjalankan program dan menyimpannya ke fail log. Dengan merekodkan log ralat, kami boleh mencari dan membaiki masalah dengan cepat dalam program dan meningkatkan keteguhan dan kestabilan program.

2.2 Kaedah pengelogan ralat

Dalam PHP, anda boleh menggunakan fungsi error_log() untuk merekod maklumat ralat ke fail log. Fungsi error_log() mempunyai tiga parameter: mesej ralat, laluan fail log dan kaedah rakaman ralat. Contohnya:

error_log("Error message", 3, "/var/log/php_error.log");

Kod di atas merekodkan maklumat ralat ke fail /var/log/php_error.log Kaedah rakaman ralat sedang ditambahkan.

2.3 Pengelasan log ralat

PHP membahagikan maklumat ralat kepada berbilang peringkat dan setiap peringkat mewakili keterukan ralat yang berbeza. Berikut ialah tahap ralat PHP biasa:

  • E_ERROR: Ralat maut yang akan menyebabkan atur cara menamatkan pelaksanaan.
  • E_WARNING: Ralat amaran, yang tidak akan menyebabkan program menamatkan pelaksanaan, tetapi boleh menjejaskan ketepatan keputusan.
  • E_NOTICE: Gesaan biasa yang tidak akan menyebabkan program menamatkan pelaksanaan Ia biasanya beberapa maklumat segera yang memerlukan perhatian.
  • E_DEPRECATED: Beri amaran kepada pengguna tentang kod yang ditamatkan.
  • E_PARSE: Ralat sintaks, yang akan menyebabkan atur cara menamatkan pelaksanaan.
  • E_CORE_ERROR: Ralat maut apabila PHP bermula, biasanya berkaitan dengan persekitaran PHP.
  • E_CORE_WARNING: Ralat amaran apabila PHP bermula, biasanya berkaitan dengan persekitaran PHP.
  • E_COMPILE_ERROR: Ralat kompilasi, biasanya berkaitan dengan kod PHP.
  • E_COMPILE_WARNING: Amaran kompilasi, biasanya berkaitan dengan kod PHP.
  • E_USER_ERROR: Ralat maut yang ditentukan pengguna.
  • E_USER_WARNING: Ralat amaran yang ditentukan pengguna.
  • E_USER_NOTICE: Ralat gesaan yang ditentukan pengguna.

Anda boleh menggunakan fungsi error_reporting() untuk menetapkan tahap ralat yang dikendalikan oleh atur cara, contohnya:

error_reporting(E_ERROR | E_WARNING | E_NOTICE);

Kod di atas menetapkan atur cara untuk hanya mengendalikan ralat maut, amaran ralat dan ralat segera biasa.

2.4 Analisis log ralat

Dengan membaca log ralat, kami boleh menyemak masalah dengan cepat semasa pelaksanaan program dan menganalisis punca masalah. Dalam log, kita boleh mencari maklumat penting seperti masa ralat berlaku, nama fail, nombor baris dan mesej ralat, untuk mencari dan membaiki masalah.

3. Ringkasan

Artikel ini memperkenalkan pengendalian pengecualian dan teknologi pengelogan ralat dalam PHP, dengan harapan dapat membantu pembaca memahami dan menguasai ciri teras pembangunan PHP. Dalam pembangunan sebenar, pengendalian pengecualian dan pengelogan ralat adalah pautan yang sangat penting Menguasainya akan meningkatkan keteguhan dan kestabilan program.

Atas ialah kandungan terperinci Pengendalian pengecualian dan teknologi pengelogan ralat dalam 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