Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah jenis tahap ralat php?

Apakah jenis tahap ralat php?

青灯夜游
青灯夜游asal
2023-01-30 16:14:383347semak imbas

Jenis tahap ralat PHP: 1. Ralat penghuraian atau ralat sintaks ini akan menghentikan pelaksanaan program dan memaparkan mesej ralat; 3. Ralat amaran; program tidak mempunyai ralat, tetapi semasa proses pelaksanaan, beberapa aspek program yang tidak munasabah ditemui, dengan itu mendorong mesej amaran, dan program akan terus melaksanakan 4. Perhatikan ralat, sama dengan ralat amaran, yang bermaksud bahawa program mengandungi ralat, tetapi ia Benarkan pelaksanaan skrip 5. Ralat tahap terendah (tidak disyorkan, tidak disyorkan) akan berlaku apabila menggunakan beberapa fungsi yang telah tamat tempoh, dan atur cara akan terus dilaksanakan.

Apakah jenis tahap ralat php?

Persekitaran pengendalian tutorial ini: sistem windows7, versi PHP8, komputer DELL G3

1 . Jenis Ralat PHP

Tahap Ralat PHP

Ralat Menghuraikan > 🎜> 1. Ralat penghuraian atau ralat sintaks (Ralat penghuraian)

Ralat sintaks ialah ralat yang paling biasa dalam pengaturcaraan dan paling mudah untuk diselesaikan Contohnya: apabila koma bertitik tiada, An mesej ralat akan dipaparkan. Ralat ini menghentikan pelaksanaan program dan memaparkan mesej ralat. Kami boleh membetulkan atur cara berdasarkan mesej ralat dan melaksanakannya semula. 【Contoh】Yang berikut menunjukkan ralat sintaks biasa dan mesej ralat yang berkaitan melalui kod ringkas. ; ditinggalkan pada penghujung baris 4 dalam kod di atas, jadi menjalankan kod di atas akan memaparkan mesej ralat berikut:

Seperti yang dapat dilihat dari contoh di atas dan menjalankan hasil , ralat sintaks akan menghalang program daripada terus dilaksanakan. Hanya selepas ralat ini diselesaikan, program boleh dilaksanakan dengan lancar.

<?php
    $a = 1;
    $b = 2;
    $c = $a + $b
    echo ;
?>

Parse error: syntax error, unexpected 'echo' (T_ECHO) in D:\WWW\index.php on line 5
2. Ralat maut:

Ini ialah pengkompil PHP yang memahami kod PHP tetapi ia mengenali jenis Ralat untuk fungsi yang tidak diisytiharkan. Ini bermakna memanggil fungsi tanpa definisi fungsi. Program melaporkan ralat secara langsung dan kod tersebut perlu diubah suai! ! ! Untuk mengganggu pelaksanaan program, anda boleh menggunakan fungsi register_shutdown_function() untuk mencetuskan fungsi sebelum program ditamatkan, contohnya,


Nota. : Dalam baris 10, Fungsi diff() telah dipanggil, tetapi fungsi diff() tidak ditakrifkan, jadi ia memberikan ralat.

<?php 
function add($x, $y) { 
    $sum = $x + $y; 
    echo "sum = " . $sum; 
}
$x = 0; 
$y = 20;
add($x, $y); 

diff($x, $y); 
?>

Apakah jenis tahap ralat php?

3 Amaran:

Tiada ralat sintaks dalam atur cara, tetapi semasa pelaksanaan, PHP akan menemui sesuatu yang tidak munasabah dalam program dan menggesa mesej amaran, tetapi program akan terus dilaksanakan. Contoh: Menggunakan 0 sebagai pembahagi akan menyebabkan atur cara berjalan dengan tidak betul dan mengeluarkan mesej ralat. Ralat:

<?php     $a = 1;
    $b = 0;
    $c = $a / $b;
    echo "$a / $b = $c";
?>

4. Notis: Apakah jenis tahap ralat php?

Ia serupa dengan ralat amaran, yang bermaksud bahawa atur cara mengandungi ralat, tetapi ia membenarkan pelaksanaan skrip. Ia akan berlaku apabila menggunakan beberapa pembolehubah yang tidak ditentukan, pemalar atau kekunci tatasusunan tanpa tanda petikan dan program terus melaksanakan

Penjelasan: Program ini menggunakan pembolehubah tidak diisytiharkan $ y jadi ia memberikan mesej ralat.

<?php   
header("content-type:text/html;charset=utf-8");
$x = "PHP中文网"; 
echo $x; 
echo $y; 
?>

Apakah jenis tahap ralat php?

5 Ralat tahap terendah (Ditamatkan, tidak disyorkan, tidak disyorkan)

Menggunakan beberapa fungsi yang telah tamat tempoh. masa akan muncul dan program akan terus dilaksanakan. 2 konfigurasi PHP salah

1. Ubah suai fail konfigurasi PHP php.ini

2 Gunakan fungsi error_reporting()

Selepas menetapkan dengan cara ini, ia boleh berkuat kuasa serta-merta. Tetapi hanya di kawasan di belakang panggilan fungsi error_reporting() dalam skrip semasa.

error_reporting = E_ALL&~E_NOTICE; //设置错误报告级别
display_errors = 1; //开发环境开启,生产环境关闭

Parameter boleh menjadi integer atau pengecam pemalar yang sepadan Anda disyorkan untuk menggunakan bentuk pemalar. Nilai pulangan ialah nilai (nilai integer) tahap pelaporan ralat yang berkuat kuasa di lokasi semasa.

Nota: Nilai lalai display_errors dalam fail konfigurasi php.ini ialah Hidup, yang bermaksud gesaan ralat dipaparkan Jika ditetapkan kepada Mati, semua gesaan ralat akan dimatikan.

Gunakan error_reporting(0) atau tambah
int error_reporting ([ int $level ] )1.
di hadapan fungsi untuk menyekat output ralat untuk mengelakkan mesej ralat daripada membocorkan maklumat sensitif.


Tahap parameter

Tahap pelaporan_ralat baharu. Boleh menjadi bitmask atau pemalar bernama. @

Adalah disyorkan untuk menggunakan pemalar bernama untuk memastikan keserasian dengan versi masa hadapan. Disebabkan penambahan tahap ralat dan peningkatan dalam julat nilai integer,

tahap ralat berasaskan integer yang lebih lama tidak akan sentiasa berkelakuan seperti yang diharapkan.

nilai kemungkinan tahap (tahap pelaporan ralat dalam php)

Biasa: kira-kira 15 kesemuanya

Apakah jenis tahap ralat php?

15个正好对应二进制的15位。

需要注意的是, 上述表中的字段, 不是一成不变的, 不同的PHP版本, 值可能会不同

任意数目的以上选项都可以用“或”来连接(用 OR 或 |),这样可以报告所有需要的各级别错误。

例如,下面的代码关闭了用户自定义的错误和警告,执行了某些操作,然后恢复到原始的报错级别:

例:

<?php
     error_reporting(0);                //禁用错误报告
     error_reporting(E_ERROR | E_WARNING | E_PARSE);//报告运行时错误
     error_reporting(E_ALL);            //报告所有错误
     error_reporting(E_ALL ^ E_NOTICE); //除E_NOTICE报告所有错误,是在php.ini的默认设置
     error_reporting(-1);               //报告所有 PHP 错误
     error_reporting(3);                //不报E_NOTICE
     error_reporting(11);               //报告所有错误
     ini_set(&#39;error_reporting&#39;, E_ALL); // 和 error_reporting(E_ALL); 一样
     error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);//表示php错误,警告,语法错误,提醒都返错。
?>

三、PHP异常

PHP的异常是PHP5的新增特性,与JAVA/C#的异常不同,PHP异常需要手动抛出throw new Exception,而不是系统自动抛出。

PHP错误与异常的区别,他们是2个不同的概念,但有共同的地方:
如果异常不捕获处理,程序将会终止,并报出Fatal Error 错误,看到这里大家就会觉得异常是不是错误的一种,这是一种错觉,但这样理解也可以。但异常捕获后程序可以继续执行,而真正的Fatal Error错误出现后程序就必须终止。

异常可以使用 try{}catch(){} 来捕获捕获,捕获之后后续代码可以继续执行;而错误是无法使用 try{}catch(){} 捕获的。
如果抛出了异常,就必须捕获它,否则程序终止执行。

推荐学习:《PHP视频教程

Atas ialah kandungan terperinci Apakah jenis tahap ralat 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
Artikel sebelumnya:Apakah kegunaan php defineArtikel seterusnya:Apakah kegunaan php define