首页 / PHP / php中的错误处理机制
php中的错误处理机制
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php中的错误处理机制,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3173字,纯文字阅读大概需要5分钟。
内容图文
1. 如果没有错误处理机制会怎样 ?
案例 1 :
<?php $fp=fopen("aa.txt","r");//打开文件,没有验证,是否存在该文件? echo "ok"; ?>
结果:
Warning: fopen(aa.txt) [function.fopen]: failed to open stream: No such file or directory in E:\Software_default\wamp_wwwroot\error\error01.phpon line 2
ok
来自 < http://localhost/error/error01.php >
改进
案例 2 :
<?php if(file_exists("aa.txt"))//绝对路径 { echo "ok"; $fp=fopen("aa.txt","r");//打开文件 fclose($fp); } else { echo "no file"; exit(); } ?>
2. 简单的 die() 语句
die() 语法结构等同于 exit() .
die 处理错误三张方式:
( 1 ) . 使用简单的 die() 语句 ;
( 2 ) . 使用 file_exists("aaa.txt") or die("no file");
使用 die () 处理以上例子
案例 3 :
<?php if(file_exists("aaa.txt"))//绝对路径 { echo "ok"; $fp=fopen("aa.txt","r");//打开文件 fclose($fp); } else { die("no file"); } ?>
或者更简洁的写法
案例 4 :
<?php file_exists("aaa.txt") or die("no file"); ?>
3. 创建自定义函数处理错误
在 php 中,如果出现错误,会启动默认机制处理错误的方式来处理错误。如案例 1 ,如果没有存在 aa .txt,php 将提示
Warning : fopen(aa.txt) [ function.fopen ]: failed to open stream: No such file or directory in E:\Software_default\wamp_wwwroot\error\error01.php on line 2
因此我们可以自定义错误方式来代替 php 默认错误机制
(1). 创建自定义错误函数
函数必须有能力处理至少两个参数( error level , error message ),但是可以接受最多 5 个参数(可选: flie,line-number,error context )
(2). 基本语法
A .error _function( error_level , error_message,error_flie,error_line,error_context)
B . 同时改写 set _error_handle (" error _function", 错误级别 ), 错误级别如下图:
其中,出现 warning时 ,不会暂停脚本运行
案例 5 :
<?php function my_error($errno,$errmes) { echo "<strong>错误级别</strong>:<font color=‘red‘>".$errno."</font><br>"; echo "<strong>错误信息</strong>:".$errmes; } set_error_handler("my_error",E_WARNING); echo "测试打开aaa.txt<br>"; $fp=fopen("aaa.txt","r");//打开文件 ?>
4. 错误触发器
需求:有一段代码,如果 input 接受一个年龄,假如年龄大于 100 ,我认为是一个错误。
// 传统方法:
案例 6 :
If ($age>100)
{
echo "too old";
exit();
}
现在可以使用自定义错误触发器
案例 7 :
<?php $age=700; echo "age:".$age."<br>"; if($age>100) { trigger_error("年龄太大"); exit(); } ?>
结果:
age:700
Notice: 年龄太大 in E:\Software_default\wamp_wwwroot\error\error05.phpon line 7
来自 < http://localhost/error/error05.php >
从案例 7 ,我们可以发现,使用了 trigger_error (), 相当于触发了一个错误,从而调用 php 默认错误提示机制,因此,在此情况下,还可以进行改写错误函数,即自定义错误函数。
其中, trigger_error () 里有两个参数, trigger_error (" error_msg ", error_type ), 默认为 E_USER_NOTICE ,可选有:
E_USER_WARNING,E_USER_ERROR ,根据需求选择。
注意 :此处的错误级别通常为: E_USER_WARNING,E_USER_NOTICE,E_USER_ERROR
根据需求选择适当类型,由于案例 7 出现 notice 错误,所以此处,我们应该选择 E_USER_NOTICE 。
案例 8 :
<?php function age_error($erroro,$erromes) { echo "<strong>错误级别</strong>:<font color=‘red‘>".$erroro."</font><br>"; echo "<strong>错误信息</strong>:".$erromes; } set_error_handler("age_error",E_USER_NOTICE);//错误级别通常为:E_USER_WARNING,E_USER_NOTICE,E_USER_ERROR $age=700; echo "age:".$age."<br>"; if($age>100) { trigger_error("年龄太大,大于120");//默认是E_USER_NOTICE exit(); } ?>
结果如下:
age:700
错误级别:1024
错误信息:年龄太大,大于120
来自 < http://localhost/error/error06.php >
本文出自 “韦小宝叔叔” 博客,请务必保留此出处http://darmi.blog.51cto.com/11607923/1775735
原文:http://darmi.blog.51cto.com/11607923/1775735
内容总结
以上是互联网集市为您收集整理的php中的错误处理机制全部内容,希望文章能够帮你解决php中的错误处理机制所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。