php中错误处理操作实例分析

2025-05-29 0 25

本文实例讲述了php错误处理操作。分享给大家供大家参考,具体如下:

错误触发

有2种触发:

系统触发: e_notice:提示性错误,比如使用不存在的变量或常量
e_warning:警告性错误,比如include载入一个不存在的文件
e_error:致命错误,导致程序无法执行后续语句,比如调用一个不存在的函数

自定义触发:
语法形式:trigger_error("错误提示信息内容",3种用户错误代号之一);
其中触发了用户的致命错误(e_user_error),也会终止程序的后续执行

错误显示

是否显示错误报告(display_errors)

有2种来设定是否显示:

1.在php.ini文件中,设定display_erros的值,为on(显示),或为off(不显示),开发阶段应该为on,显示错误信息

2.直接在php脚本文件中设定ini_set("display_errors",0);//不显示错误报告,1为显示
显示哪些级别的错误报告(error_reporting)
前提是"display_errors"设置为on(或1),表示可以显示
1.在php.ini文件中 error_reporting=e_all | e_strict这个值代表所有错误

php中错误处理操作实例分析

php中错误处理操作实例分析

  • 在当前的脚本代码中设置
?

1

2

3

4

5

6

7

8
ini_set("error_reporting",e_notice); //就显示该一个级别的错误

ini_set("error_reporting",e_notice| e_warning); //显示该2个级别的错误

//禁用错误报告

error_reporting(0);

//报告运行时错误

error_reporting(e_error | e_warning | e_parse);

//报告所有错误

error_reporting(e_all);

错误日志记录

错误日志其实就是错误报告,只是会写入文件中,此时就称为错误日志

是否记录log_errors

php.ini中:log_errors=on或off 脚本中:ini_set("log_erros",1);或0
补充: ini_set("php配置项",值);//用于脚本中设置php.ini中某项的值
$v=ini_get("php配置项");//用于获取php.ini中某项的值

记录到哪里error_log

一般就只有2个写法:

1.直接写一个文件名,系统会自动在每个文件夹下都建立该文件名,并用其记录该文件夹下的所有网页文件发生的错误信息ini_set("error_log","my_error.txt");//记录到该文件

2.使用一个特殊的名字"syslog",则所有的错误信息都会记录到系统的"日志文件中".系统日志文件在这里:控制面板》管理工具》事件查看器》window日志》应用程序:

?

1
ini_set("error_log","syslog");//记录到系统日志中

自定义错误处理

让系统不要去处理错误了,完全由开发者对错误进行处理:显示和记录

第一步:设定要用于处理错误的函数名:set_error_handler("f1");

第二步:去定义该函数function f1() {这里可以写任意代码,正常去显示错误报告,和记录}

例:

?

1

2

3

4

5

6

7

8

9

10

11

12

13
set_error_handler("my_error_handler");

//定义该函数,需要定义4个形参分别代表$errcode:代表错误代号(级别) $errmsg:代表错误//信息内容 $errfile:代表错误的文件名 $errline:代表错误的行号,一旦发生错误自动调用

function my_error_handler($errcode,$errmsg,$errfile,$errline) {

$str="";

$str .="<p><font color='red'>大事不好,发生错误:</font>";

$str .="<br />错误代号为:".$errcode;

$str .="<br />错误内容为:".$errmsg;

$str .="<br />错误代号为:".$errfile;

$str .="<br />错误代号为:".$errline;

$str .="<br />发生时间为:".date("y-d-m h:i:s");

$str .="</p>";

echo $str; //输出该构建完整的错误处理结果,也可以将改内容写到某个文件中去

}

异常抛出

?

1

2

3

4

5

6

7

8

9

10
function checkage($age){

if($age>100) throw new exception('年龄不能大于100');

echo '年龄符合规范';

}

//如果年龄大于100,抛出异常

try{

checkage(200);

}catch(exception $e){

echo $e->getmessage();

}

希望本文所述对大家PHP程序设计有所帮助。

原文链接:https://blog.csdn.net/xiajiandong1024/article/details/71106076

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 php中错误处理操作实例分析 https://www.kuaiidc.com/92064.html

相关文章

发表评论
暂无评论