本文实例讲述了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
这个值代表所有错误
- 在当前的脚本代码中设置
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
相关文章
- 个人服务器网站搭建:如何选择合适的服务器提供商? 2025-06-10
- ASP.NET自助建站系统中如何实现多语言支持? 2025-06-10
- 64M VPS建站:如何选择最适合的网站建设平台? 2025-06-10
- ASP.NET本地开发时常见的配置错误及解决方法? 2025-06-10
- ASP.NET自助建站系统的数据库备份与恢复操作指南 2025-06-10
- 2025-07-10 怎样使用阿里云的安全工具进行服务器漏洞扫描和修复?
- 2025-07-10 怎样使用命令行工具优化Linux云服务器的Ping性能?
- 2025-07-10 怎样使用Xshell连接华为云服务器,实现高效远程管理?
- 2025-07-10 怎样利用云服务器D盘搭建稳定、高效的网站托管环境?
- 2025-07-10 怎样使用阿里云的安全组功能来增强服务器防火墙的安全性?
快网idc优惠网
QQ交流群
-
2025-05-29 68
-
2025-05-25 82
-
国外虚拟主机建站指南:新手快速搭建WordPress赚钱网站
2025-06-04 21 -
2025-06-04 35
-
2025-05-27 59