错误处理器、错误触发器

【错误级别】

2  E_WARNING:非致命的run-time错误。不暂停脚本执行。
8  E_NOTICE:Run-time通知。脚本发现可能有错误发生,但也可能在脚本正常运行时发生。
256  E_USER_ERROR:致命的用户生成的错误。trigger_error()设置的E_ERROR。
512  E_USER_WARNING:非致命的用户生成的警告。trigger_error()设置的E_WARNING。
1024  E_USER_NOTICE:用户生成的通知。trigger_error()设置的E_NOTICE。
4096  E_RECOVERABLE_ERROR:可捕获的致命错误。类似E_ERROR,但可被用户定义的处理程序捕获。
8191  E_ALL:所有错误和警告。

1.错误处理器(语法错误,自定义的系统错误)【set_error_handler();】

<?php 

    function myError($errorNo, $errorMsg) {
        echo ‘错误行号:‘.$errorNo;
        echo ‘错误信息:‘.$errorMsg;
        exit();
    }

    set_error_handler("myError", E_WARNING);

    $fp = fopen("abc.txt", "r");
?>

2.错误触发器(语法没错,自以为是的用户错误)【trigger_error(); error_log();】

<?php 

    function myError($errorNo, $errorMsg) {
        echo ‘错误行号:‘.$errorNo;
        echo ‘错误信息:‘.$errorMsg;

        date_default_timezone_set("PRC");

        $err_info = $errorNo.‘ -- ‘.$errorMsg;
        //"\r\n"表示回车换行
        error_log("时间是:".data("Y-m-d H-i-s")."--错误信息是:".$err_info."\r\n",3,"errLog.txt");
        exit();
    }

    set_error_handler("myError", E_USER_WARNING);

    $age=200;
    if($age>200) {
        trigger_error("输入年龄过大",E_USER_WARNING);
        exit();
    }

?>
时间: 2024-10-11 21:48:53

错误处理器、错误触发器的相关文章

PHP学习笔记三十三【自定义错误处理器】

<?php //自定义错误处理器 //$errorno 错误号 //$errmes错误信息 //这两个参数是必须的 function my_error($errorno,$errmes) { echo "<font size='5' color='red'>$errorno</font><br/>"; echo "错误信息是:$errmes"; } //必须重写set_error_handler处理器 set_error_h

PHP 错误与异常 笔记与总结(9)自定义错误处理器

自定义错误处理器更加智能. <?php class myErrorHandler{ //$message:错误信息 //$filename:错误文件名 //$line:错误行号 //$vars:额外信息 public $message = ''; public $filename = ''; public $line = 0; public $vars = array(); protected $_noticeLog = 'D:\practise\php\From\notice\noticeLo

自定义错误处理器

什么叫错误处理器? 就是一旦发生错误,用来处理该错误的一种"机器" --其实就是一个函数. 自定义错误处理,就是指: 让系统不要去处理错误,而完全由我们(开发者)来对错误处理:显示和记录. 做法,其实很简单,就两步: 第一步: 设定要用于处理错误的函数名! set_error_handler("f1"); 第二步: 去定义该函数 function f1() { //这里可以任意写代码:自然正常是去显示错误报告和记录错误日志. } 代码: <?php //第一步

sql server 导入平面文件源数据,错误 0xc02020a1错误 0xc020902a 错误 0xc02020c5,返回状态值 4 和状态文本“文本被截断,或者一个或多个字符在目标代码页...

使用sql server 导入平面文件源数据时,报错:错误 0xc02020a1: 错误 0xc020902a: 错误 0xc02020c5:错误 0xc0047022: 返回状态值 4 和状态文本"文本被截断,或者一个或多个字符在目标代码页中没有匹配项. 错误 0xc02020a1: 数据流任务 1: 数据转换失败.列"列 6"的数据转换返回状态值 4 和状态文本"文本被截断,或者一个或多个字符在目标代码页中没有匹配项.". (SQL Server 导入

pdo简介--错误与错误处理

PDO 简介——错误和错误处理 标签: database数据库exception脚本phpup 2008-09-28 19:42 1623人阅读 评论(0) 举报  分类: PHP(10)  为适合你的应用开发,PDO 提供了3中不同的错误处理策略. PDO::ERRMODE_SILENT 这是默认使用的模式.PDO会在statement和database对象上设定简单的错误代号,你可以使用PDO->errorCode() 和 PDO->errorInfo() 方法检查错误:如果错误是在对st

iis7.5错误 配置错误

iis7.5详细错误   HTTP 错误 500.19 - Internal Server Error无法访问请求的页面,因为该页的相关配置数据无效. 详细错误信息模块 IIS Web Core 通知 未知 处理程序 尚未确定 错误代码 0x8007052e 配置错误 无法使用虚拟目录密码作为用户 Administrator 在本地登录到 C:\inetpub\wwwroot 配置文件 不可用(配置隔离) 请求的 URL http://localhost:80/HL4000-Web/Defaul

支付宝移动接入报系统繁忙,参数错误等错误

最近在做支付宝移动端的接入,用的以前的公钥和私钥,结果一直报错,问客服后得到如下答案,这个问题纠结了我一个月,写下来希望有对大家有帮助,少走弯路,最后在吐槽一句,他妈的支付宝就不能把这些问题写在文档里吗... 快捷支付接口目前(发帖日)有两个版本,我们按客户端提交参数区别来分为老版和新版,老版的dmeo提交参数中没有servic这个值,新版的是有的,老版接口使用:1,老版的接口,商户公钥上传地址在ms.alipay.com,这个文档中有写,但从13年9月份开始,ms.alipay.com地址对快

JavaScript中易犯的小错误-------常见错误五:低效的DOM操作

JavaScript中易犯的小错误-------常见错误五:低效的DOM操作js中的DOM基本操作非常简单,但是如何能有效地进行这些操作一直是一个难题.这其中最典型的问题便是批量增加DOM元素.增加一个DOM元素是一步花费很大的操作.而批量增加对系统的花销更是不菲.一个比较好的批量增加的办法便是使用 document fragments :var div = document.getElementsByTagName("my_div");var fragment = document.

JavaScript中易犯的小错误-------常见错误三:内存泄露

国庆放假,今天开始继续!!!!!!!!!!! JavaScript中易犯的小错误-------常见错误三:内存泄露 内存泄露在js变成中几乎是一个无法避免的问题.如果不是特别细心的话,在最后的检查过程中,肯定会出现各种内存泄露问题.下面我们就来举例说明一下:var theThing = null;var replaceThing = function () {     var priorThing = theThing;     var unused = function () {