zoukankan      html  css  js  c++  java
  • PHP 错误处理

    一、使用 die() 终止程序

    if(!file_exists('file.txt')){
        die('file.txt不存在');     // 如果不加判断,文件又不存在的话就会报错,
    }else{
        $file = fopen('file.txt','r');
    }

    二、创建自定义错误处理函数

    语法:

    error_function(error_level,error_message,error_file,error_line)

    参数描述
    error_level

    必需。为用户定义的错误规定错误报告级别。必须是一个值数。

    参见下面的表格:错误报告级别。

    error_message 必需。为用户定义的错误规定错误消息
    error_file 可选。规定错误在其中发生的文件名
    error_line 可选。规定错误发生的行号
        值    常量描述
    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 的一部分)

    set_error_handler(处理错误的函数名,错误级别)

    function captureError($error_number,$error_message,$error_file,$error_line){
        switch($error_number){
            case 2:
                $error_level = "Warning,非致命的run-time错误";
            break;
            case 8:
                $error_level = "Notice,可能有错误发生,也可能在脚本运行时发生";
            break;
            case 256:
                $error_level = "User error,用户输入信息有误,脚本出现致命错误";
            break;
            case 512:
                $error_level = "User Warning,用户输入信息可能有误(E_USER_WARNING)";
            break;
            case 1024:
                $error_level = "User notice,请检查用户所输入的信息是否有误";
            break;
            case 4096:
                $error_level = "Recoverable error,出现可捕获的致命错误";
            break;
            case 8191:
                $error_level = "All error,显示所有错误和警告";
            break;
        }
        echo "文件<span style='color:red;'>$error_file</span>的第<span style='color:red;'>$error_line</span>行发生了<span style='color:red;'>$error_level</span>的错误,错误详情:<span style='color:red;'>$error_message</span></br>";
        die('脚本已终止运行!请根据错误提示排除错误。');
    }
    
    set_error_handler("captureError",E_ALL);
    echo $name;     //文件名为E:www	estadmin.php的第31行发生了Notice,可能有错误发生,也可能在脚本运行时发生的错误,错误详情为:Undefined variable: name
  • 相关阅读:
    Windows2003 Webshell默认权限
    Windows安装Centos7双系统后Windows启动项消失
    GCC编译流程及常用编辑命令
    swoole的websockte例子
    PhpStorm 增加Swoole智能提示
    Centos7/RHEL 7 配置静态路由
    webpack介绍和使用
    Webpack中的sourcemap以及如何在生产和开发环境中合理的设置
    什么是 PWA
    php实现excel单元格合并,字体加粗居中等操作
  • 原文地址:https://www.cnblogs.com/chrdai/p/6378792.html
Copyright © 2011-2022 走看看