不同的错误处理方法:

  • 简单的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. leetCode 34.Search for a Range (搜索范围) 解题思路和方法

    Search for a Range Given a sorted array of integers, find the starting and ending position of a give ...

  2. CMMI 是什么东西?

         摘要: CMMI全称是Capability Maturity Model Integration,CMMI是个好东西来的,但行内人士对她的认识并不全面,甚至有种种的误解.尽管网上有很多CMM ...

  3. delphi中用代码实现注册Ocx和Dll(有点怪异,使用CallWindowProc来调用指定函数DllRegisterServer)

    在windows系统中,可以通过Regsvr32来实现注册ocx或者dl, 编程时,调用Regsvr32来注册,却不能正常执行.尤其是在Win7系统中,需要管理员身份才能运行. 使用下面的代码则能正常 ...

  4. C/C++头文件

    C/C++头文件 #include <assert.h> //设定插入点 #include <ctype.h> //字符处理 #include <errno.h> ...

  5. 【前段开发】10步掌握CSS定位: position static relative absolute float

    希望能帮到须要的人,转自:http://www.see-design.com.tw/i/css_position.html 1. position:static 元素的 position 屬性默認值為 ...

  6. C#使用Redis集群缓存

    C#使用Redis集群缓存 本文介绍系统缓存组件,采用NOSQL之Redis作为系统缓存层. 一.背景 系统考虑到高并发的使用场景.对于并发提交场景,通过上一章节介绍的RabbitMQ组件解决.对于系 ...

  7. android 在你的UI中显示Bitmap - 开发文档翻译

    由于本人英文能力实在有限,不足之初敬请谅解 本博客只要没有注明“转”,那么均为原创,转贴请注明本博客链接链接 Displaying Bitmaps in Your UI 在你的UI中显示Bitmap ...

  8. leetcode解析回文子串拆分

    转载请注明来自souldak,微博:@evagle Given a string s, partition s such that every substring of the partition i ...

  9. hdu3329(2次dfs)

    传送门:The Flood 题意:当水的高度升为多少的时候,能够将这块区域分为两个部分. 分析:枚举高度,先从外围开始一次dfs,将水能淹没的标记,然后看非标记的是否已分为多块. #include&l ...

  10. IBM之MQ使用指南

    随着计算机网络和分布式应用的不断发展.远程消息传递越来越成为应用系统中必不可少的组成部分. 商业消息中间件的出现保证了消息传输的可靠性,高效率和安全性,同一时候也降低了系统的开发周期. 眼下应用最多的 ...