不同的错误处理方法:

  • 简单的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. 浅谈mapreduce程序部署

    尽管我们在虚拟机client上能非常快通过shell命令,进行运行一些已经封装好实例程序,可是在应用中还是是自己敲代码,然后部署到server中去,以下,我通过程序进行浅谈一个程序的部署过程. 在启动 ...

  2. Swift - 各种手势检测大全(UIGestureRecognizer及其子类)

    UIGestureRecognizer有许多子类,用于监听一些常见的手势事件,这些子类主要有: 1,UISwipeGestureRecognizer:滑动(快速移动) 1 2 3 4 5 6 7 8 ...

  3. IOS-UITextField-邮箱后缀联想赛

    最近做的项目,有一个函数,百度了一下 结果没 要研究了一下. 当用户输入邮箱形式的账号时,输入完"@"符号后.联想出经常使用的邮箱 点击某一行,将改行代表邮箱自己主动输入到账号输入 ...

  4. XSS分析及预防(转)

    阅读目录 XSS的种类和特点 XSS预防 总结 XSS(Cross Site Scripting),又称跨站脚本,XSS的重点不在于跨站点,而是在于脚本的执行.在WEB前端应用日益发展的今天,XSS漏 ...

  5. Graphviz 绘制流程图

    凝视说明非常具体.不再详述. digraph G{ //dot 是一种画图语言,它能够方便你採用图形的方式高速.直观地表达一些想法, //比方描写叙述某个问题的解决方式,构思一个程序的流程,澄清一堆貌 ...

  6. Oracle Cursor的使用

    When Oracle Database executes a SQL statement, it stores the result set and processing information i ...

  7. 为什么php时间阅读RTF,p标签会出现红色

    为什么php读取富文本的时候,p标签会出现红线,怎么去掉,哪位大侠帮解决?跪求答案 就像以下一样,一遇到p标签就有红虚线 版权声明:本文博客原创文章,博客,未经同意,不得转载.

  8. OpenStack25

    OpenStack(25) API 前端服务 每个 OpenStack 组件可能包含若干子服务,其中必定有一个 API 服务负责接收客户请求. 以 Nova 为例,nova-api 作为 Nova 组 ...

  9. linux kickstart 自动安装

    最近很多业务系统都是linux lnmp平台安装,反复的安装让人觉得很苦恼,仔细钻研了下kickstart .这里环境是red hat linux 5.8 32位,系统盘中的软件包里包含有kickst ...

  10. 对付"反盗链"

    对付"反盗链" 某些站点有所谓的反盗链设置,其实说穿了很简单, 就是检查你发送请求的header里面,referer站点是不是他自己, 所以我们只需要像把headers的refer ...