问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

PHP自定义错误处理函数

发布网友 发布时间:2022-04-28 04:55

我来回答

4个回答

懂视网 时间:2022-04-28 09:16

php自定义错误处理的方法:可以利用set_error_handler()函数来实现。该函数可以设置用户定义的错误处理函数,例如【set_error_handler("my_define_error")】。

自定义错误处理:

在错误发生时由我们自己来处理、设定一个错误处理的函数。

(视频教程推荐:php视频教程)

set_error_handler() 函数设置用户定义的错误处理函数。

语法:

set_error_handler(errorhandler,E_ALL|E_STRICT);

参数:

  • errorhandler 必需。规定用户错误处理函数的名称。

  • E_ALL|E_STRICT 可选。规定显示何种错误报告级别的用户定义错误。默认是 "E_ALL"。

  • 比如:set_error_handler(“my_define_error”);

    然后定义该函数,在函数中详细设定错误的处理情况。

    语法:

    function my_define_error(errCode,errCode,errCode,errMsg,errFile,errFile,errFile,errLine){
     函数内部写入处理错误的代码
    }

    (相关教程推荐:php图文教程)

    注意:此形参的顺序是规定的,而且是由系统会统一调用的函数,并传输实际参数数据。

    注意:自定义错误只能处理“非致命错误”,也就是说无法处理E_ERROR错误。

    代码实现:

    <?php // 用户定义的错误处理函数
     function myErrorHandler($errno, $errstr, $errfile, $errline) {
     echo "<b>Custom error:</b> [$errno] $errstr<br>";
     echo " Error on line $errline in $errfile<br>";
     } // 设置用户定义的错误处理函数
     set_error_handler("myErrorHandler");
    
     $test=2; // 触发错误
     if ($test>1) {
     trigger_error("A custom error has been triggered");
     }
     ?>

    输出结果:

    Custom error: [1024] A custom error has been triggered
     Error on line 14 in C:webfolder	est.php

    热心网友 时间:2022-04-28 06:24

      trigger_error() 用于在用户指定的条件下触发一个错误消息。它与内建的错误处理器一同使用,也可以与由 set_error_handler() 函数创建的用户自定义函数使用

      定义和用法trigger_error() 函数创建用户定义的错误消息。
    trigger_error() 用于在用户指定的条件下触发一个错误消息。它与内建的错误处理器一同使用,也可以与由 set_error_handler() 函数创建的用户自定义函数使用。

    如果指定了一个不合法的错误类型,该函数返回 false,否则返回 true。
    语法trigger_error(error_message,error_types)
    参数描述error_message必需。规定错误消息。长度*为 1024 个字符。error_types可选。规定错误消息的错误类型。 可能的值: •E_USER_ERROR
    •E_USER_WARNING
    •E_USER_NOTICE

      复制代码代码如下:

    <?php
    function myError($errno,$errstr,$errfile,$errline){
    switch($errno){
    case E_USER_ERROR:
    echo "<b>My ERROR</b>[$errno] $errstr<br />";
    echo "Fatal error in line $errline of file $errfile";
    exit(1);
    break;
    case E_USER_WARNING:
    echo "<b>My WARNING</b> [$errno] $errstr";
    break;
    default:
    echo "Unknown error type:[$errno] $errstr";
    break;
    }
    }
    set_error_handler("myError");
    $age=-100;
    if($age<0){
    trigger_error('age you input must>=0',E_USER_ERROR);
    }
    ?>

    热心网友 时间:2022-04-28 07:42

    register_shutdown_function();

    set_error_handler();

    set_exception_handler();

    去找文档阅读以下这三个函数,读明白了,你也就明白了!追问就是看了不明白才上来问的

    追答register_shutdown_function你用这个函数试试,

    热心网友 时间:2022-04-28 09:17

    用try catch啊追问我是为了测试程序运行,所以想知道为什么这样?

    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    企业培训学到了什么 培训感悟简短 有关培训的感悟 通过培训学到什么 培训你学到了什么 领导问培训学到什么怎么回复 Linux系统安装FTP服务器 Linux系统的网络文件共享 建筑的七盏明灯的内容简介 面向对象设计七大原则 简单说 交互设计七大定律 php删除数组中相同的元素 php把索引数组的第一个元素移除后索引不重置 php中删除数组中的某一些元素 php 怎么删除第一个数组 怎么在php中 去除数组第一个值 如何把用php将数组输出为 &#39;&#39;,&#39;&#39;,&#39;&#39;的字符串. php怎么把数组最后一个元素放到最前 php 如何取数组最后一个元素 php怎么取出一组数组中每个下标下的最后一个元素 php如何取出数组中第一个和最后一个元素的值? php 如何去掉数组最后一个元素 php页面跳转到指定页面 php怎么跳转到登陆界面 PHP如何实现简繁统一搜索,就像在百度输入繁体自动转换为简体查找数据?请说出具体方法,感谢! php怎麼 区分简体与繁体中文?JS区分也行。 php源码改繁体 一段PHP代码,将繁体转简体的代码怎么用 [内码]您是如何实现简体中文到繁体中文快速转换的? - PHP进阶讨论 php如何简体繁体切换,就是我做好了一个网页,想有简体繁体两个版本,该如何做呢? php搜索 繁体怎么转成简体 请问php怎么自定义404错误页面? php 变量未定义等错误的解决方法 PHP 自定义的错误处理程序 date函数出错 什么是错我的自定义PHP函数 PHP中出现错误位置怎么处理? 如何处理php服务的500错误 PHP自定义错误处理器不能报Parse error php自定义错误 和 错误日志可以一起用吗》 php如何处理用户在地址栏上手动填写错误信息 php 怎么判断一个值为字符串 怎么用php来判断字符串的语言? php如何判断字符串里有没有特定字符串? php如何判断字符串是否是字母和数字的组合 php 如何判断字符串中是否包含某些指定的字符串! php中 判断某字符串变量是否含有特定字符串 php 如何判断字符是汉字还是英文 php如何判断一个字符串是否包含另一个字符串的某些字符 请写一段PHP代码,确保多个进程同时写入同一个文件成功 php如何来多线程运行多个脚步 nginx 多进程模式 php如何多线程