不同的错误处理方法:

  • 简单的die()语句
  • 自己定义错误函数和错误触发器
  • 错误报告
主要的错误处理:使用die()函数

if(!file_exists("welcome.txt")){
  die("FIle not found");
}else{
  $file=fopen("welcome.txt","r");
}

或者
$file=fopen("webdictionary.txt","r") or die("Unable to open file!");

die(status):假设status是字符串,则该函数会在推出前输出字符串。

                 假设status是证书。这个值会被用作退出状态。

退出状态的值在0到254之间。退出状态255由php保留,不会被使用。状态0用于成功地终止程序。


创建自己定义错误处理器:
该函数必须有能力处理至少两个參数(error level和error message),可是能够接受最多五个參数(可选的:file,line-number以及error context)。
error_function(error_level,error_message,error_file,error_line,error_context)//错误报告级别,错误消息,发送错误的文件名称,行号。规定一个数组(包括了当发生错误时在用的每一个变量以及它们的值)

常量 描写叙述
2 E_WARNING 非致命的 run-time 错误。不暂停脚本运行。
8 E_NOTICE

Run-time 通知。

脚本发现可能有发生错误,但也可能在脚本正常执行时发生。

256 E_USER_ERROR 致命的用户生成的错误。这类似于程序猿使用 PHP 函数 trigger_error() 设置的 E_ERROR。
512 E_USER_WARNING 非致命的用户生成的警告。这类似于程序猿使用 PHP 函数 trigger_error() 设置的 E_WARNING。
1024 E_USER_NOTICE 用户生成的通知。这类似于程序猿使用 PHP 函数 trigger_error() 设置的 E_NOTICE。
4096 E_RECOVERABLE_ERROR 可捕获的致命错误。类似 E_ERROR。但可被用户定义的处理程序捕获。

(參见 set_error_handler())

8191 E_ALL
全部错误和警告,除级别 E_STRICT 以外。
(在 PHP 6.0。E_STRICT 是 E_ALL 的一部分)





function customError($errno,$errstr){
echo "<b>Error:</b>[$errno] $errstr <br/>";
echo "Ending Script";
die();
}

当上述错误被触发时,它会取得错误级别和错误消息。然后它会输出错误级别和消息。并终止脚本。如今。已经创建了一个错误处理函数,我们须要确定在何时触发该函数。

Set Error Handler:
php的默认错误处理程序是内奸的错误处理程序。能够改动错误处理程序。使其仅应用到某些错误,这样脚本就能够不同的方式来处理不同的错误。

本例中,我们打算针对全部错误来使用我们的自己定义错误处理程序。


set_error_handle(“customError”);
当处理全部错误时。set_error_handler()仅须要一个參数。能够加入第二个參数来规定错误级别。


触发错误:
当用户的输入无效时触发错误。由trigger_error()完毕。
$test=2;
if($test>1){
trigger_error("Value must be 1 or below");//大于1时触发错误
}

可能的错误类型:
E_USER_ERROR:
E_USER_WARNING:
E_USER_NOTICE:




























php学习笔记--error的更多相关文章

  1. MySQL学习笔记——ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

    ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) Enter password: E ...

  2. C语言学习笔记--#error 、 #line 和 #pragma 的使用

    1. #error 的用法 (1)#error 是一种预编译器指示字,用于生成一个编译错误消息 (2)用法:#error message //注意:message 不需要用双引号包围 (3)#erro ...

  3. R语言学习笔记-Error in ts(x):对象不是矩阵问题解决

    1.问题 在对时间序列进行拟合操作时,发生:Error in ts(x):对象不是矩阵的错误,而直接在arima()函数中使用时没有问题的. > sample<-c2 > sampl ...

  4. jQuery源代码学习笔记_工具函数_noop/error/now/trim

    jQuery源代码学习笔记_工具函数_noop/error/now/trim jquery提供了一系列的工具函数,用于支持其运行,今天主要分析noop/error/now/trim这4个函数: 1.n ...

  5. SQLServer学习笔记系列1

    一.前言 一直自己没有学习做笔记的习惯,所以为了加强自己对知识的深入理解,决定将学习笔记写下来,希望向各位大牛们学习交流! 不当之处请斧正!在此感谢!这边就先从学习Sqlserver写起,自己本身对数 ...

  6. 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁

    什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...

  7. redis 学习笔记(6)-cluster集群搭建

    上次写redis的学习笔记还是2014年,一转眼已经快2年过去了,在段时间里,redis最大的变化之一就是cluster功能的正式发布,以前要搞redis集群,得借助一致性hash来自己搞shardi ...

  8. 【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL

    周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark ...

  9. html5学习笔记一

    HTML5学习笔记 <video>标记:定义视频,Ogg.MPEG4.WebM三种格式 <video src=”movie.ogg”  controls=”controls”> ...

随机推荐

  1. J2SE学习小结

    开始接触Java的学习,Java 2 Standard Edition为Java2平台的标准版,其包括了构成Java语言核心的类,此番学习算是学习了Java体系中的基础部分. 学习框架大致整理如下: ...

  2. md5增加指定的加密规则,进行加密

    import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.securit ...

  3. INFORMIX 时间函数大全

    http://publib.boulder.ibm.com/infocenter/idshelp/v115/index.jsp?topic=/com.ibm.sqls.doc/ids_sqs_0187 ...

  4. ThinkPhp学习09

    原文:ThinkPhp学习09 三.区间查询 $data['id']=array(array('gt',4),array('lt',10));//默认关系是 and 的关系 //SELECT * FR ...

  5. java基础---->java调用oracle存储过程(转)

    存储过程是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它.今天 ...

  6. 推动Common Lisp的实际应用

    推动Common Lisp的实际应用 推动Common Lisp的实际应用

  7. [Cacti] memcache安装执行、cacti监控memcache实战

    简单介绍 Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的.眼下全世界不少人使用这个缓存项目来构建自己大负载的站点,来分担数据库的压力. Memcache官方站 ...

  8. [Word使用笔记]分类简介

    什么Vistual Studio , Eclipse , Xcode , 都弱爆了,Word比他们难多了 - -! 此分类用于记录Word的一些使用

  9. Android内存管理

    首先Android理机制相当复杂.想要讲清楚比較困难.其次对于绝大多数用户来说.仅仅关心内存够不够用,至于内存怎样管理的这样的技术细节,不是用户须要去考虑的,写这样一个专题有没有意义?毕竟我们是用手机 ...

  10. VMware Player安装centos

    用VMware Player安装centos 到物理硬盘 想要學Linux,但卻不知道如何弄成雙系統?那就使用用虛擬機器來安裝Linux.使用虛體機器來玩,好處除了好裝之外,也不怕把電腦搞壞,不論你怎 ...