`

PHP的Error错误处理笔录

阅读更多

【列表】

(1)默认错误处理方式

(2)错误处理方法:

         1. 简单的 "die()" 语句;2. 自定义错误和错误触发器;

(3)错误日志

 

【详解】

(1)默认错误处理方式

         默认的错误处理很简单。一条消息会被发送到浏览器,这条消息带有文件名、行号以及一条描述错误的消息。

(2)错误处理方法:

         1. 简单的 "die()" 语句;2. 自定义错误和错误触发器;

(3)错误日志

 

详解:

    1. 基本的错误处理:使用 die() 函数

<?php
if(!file_exists("welcome.txt")){
 die("文件不存在");
 }else{
 $file=fopen("welcome.txt","r");
 }
?>

   假如文件不存在,将会得到类似这样的错误消息:

文件不存在

   比起默认的处理方式,上面的代码更有效,这是由于它采用了一个简单的错误处理机制在错误之后终止了脚本。不过,简单地终止脚本并不总是恰当的方式 

   2. 自定义错误和错误触发器

       ①错误处理器(自定义错误,一般用于语法错误处理)

         创建自定义错误函数(处理器),该函数必须有能力处理至少两个参数(error_level和errormessage),但是可以接受最多五个参数(error_file、error_line、error_context)

function error_function($error_level登记, $error_message信息, $error_file文件名, 
                        $error_line行数, $error_context数组)

        ②错误触发器(一般用于处理逻辑上的错误)

           需求:比如要接收一个年龄,如果数字大于120,就认为是一个错误。

          传统方法:

<?php
if ($age > 120) {
    echo '年龄错误';
    exit();
}
?>

         使用触发器:

<?php
if ($age > 120) {
    // trigger_error('错误信息'[,'错误等级']); 这里错误等级为可选项,用于定义该错误的级别
    // 用户定义的级别包含以下三种:E_USER_WARNING 、E_USER_ERROR 、E_USER_NOTICE
    trigger_error('年龄错误'); 
   // 这里是调用的系统默认的错误处理方式,我们也可以用自定义处理器
}
/*自定义处理器,与上面相同*/
function myerror($error_level, $error_message) {
    echo 'error text';
}
//  同时需要改变系统默认的处理函数
set_error_handler('myerror', E_USER_WARNING); 
// 同上面,第一个参数为自定义函数的名称,第二个为错误级别
//【这里的错误级别通常为以下三种:E_USER_WARNING 、E_USER_ERROR 、E_USER_NOTICE】
// 现在再使用trigger_error就可以使用自定义的错误处理函数了
?>

   练习题:

<?php
date_default_timezone_set('PRC');
function myerror($error_level, $error_message) {
    $info = "错误号:$error_level";
    $info .= "错误信息:$error_message";
    $info .= '发生时间:' . date('Y-m-d H:i:s');
    $filename = 'aa.txt';
    if (!$fp = fopen($filename, 'a')) {
        echo '创建文件' . $filename . '失败';
    }
    if (is_writeable($filename)) {
        if (!fwrite($fp, $info)) {
            echo '写入文件失败';
        } else {
            echo '已成功记录错误信息';
        }
        fclose($fp);
    } else {
        echo '文件' . $filename . '不可写';
    }
    exit();
}
set_error_handler('myerror', E_WARNING);
$fp = fopen('aaa.txt', 'r');
?>

 

(3)错误日志

       默认的根据php.ini中error_log配置,PHP向服务器的错误记录系统或文件发送错误记录。通过使用error_log()函数可以向文件或远程目的地发送错误记录;

error_log(error[, type, destination, headers])

       type部分一般用3,表示在文件后面追加错误信息,而不会覆盖原内容destination表示目的地,即存放的文件或远程目的地。如:

error_log("$error_info",3,"errors.txt");

 

 

 

 

.

分享到:
评论

相关推荐

    php_错误处理机制

    ### PHP 错误处理机制详解 #### 一、引言 在PHP开发中,错误处理是一项重要的技术。良好的错误处理机制不仅能帮助开发者更好地调试代码,还能提升用户体验,尤其是在Web应用程序中。本文将深入探讨PHP中的错误处理...

    PHP Error:一个为更好的解决开发过程中面临着标准的PHP错误信息一个开源的PHP类库

    PHP Error 是一个专门为开发者设计的开源PHP类库,它的主要目标是改善标准PHP错误处理机制,为开发过程中遇到的问题提供更清晰、更有帮助的错误信息。这个类库不仅提供了友好的错误报告方式,还集成了语法高亮显示,...

    PHP Error(错误处理)讲解.md

    在PHP中,可以通过`set_error_handler()`函数来指定一个自定义的错误处理函数。该函数会在脚本执行过程中发生的任何错误被触发时被调用。自定义错误处理函数接收四个参数:错误级别、错误消息、错误发生的文件名和...

    错误处理Error.playground.zip

    在"错误处理Error.playground.zip"这个压缩包中,我们很可能会找到一个示例项目,展示了如何在Swift中使用错误处理来捕获和处理程序运行时可能遇到的问题。下面我们将深入探讨Swift中的错误处理机制。 首先,Swift...

    错误处理_VBScript_On Error

    2. `On Error GoTo 0`:关闭错误处理,恢复到默认行为,即当错误发生时,脚本将立即停止执行并显示错误消息。 在QTP测试环境中,我们通常使用`On Error Resume Next`来处理可能引发错误的代码段,以确保测试脚本的...

    在web.xml中设置错误处理页面.docx

    本文将讲述如何在 web.xml 文件中使用 `&lt;error-page&gt;` 元素来设置错误处理页面,并结合实验结果,分析 JSP 的基本语法和错误处理机制。 web.xml 文件的 `&lt;error-page&gt;` 元素 在 JavaWeb 应用程序中,web.xml 文件...

    PHP错误处理函数

    总的来说,PHP错误处理是通过结合`set_error_handler()`、`error_reporting()`和自定义错误处理函数来实现的,这样可以更有效地管理错误,提供更专业的错误反馈,同时确保程序的安全性。通过适当的错误处理,开发者...

    Go-errorx-Go的综合错误处理库

    `errorx`库作为一个综合的错误处理工具,旨在提供更高效、可扩展且富有洞察力的错误处理机制,以提升Go应用的开发体验。本文将深入探讨`errorx`库的核心特性和如何在实际项目中使用它。 首先,`errorx`库引入了错误...

    PHP中的错误处理、异常处理机制分析

    在上述内容中,提到了PHP处理错误的两种主要方法:错误处理和异常处理。 首先,我们来了解一下PHP中的错误处理机制。PHP提供了多种处理错误的方式,其中最常见的是: 1. **简单的die()或exit()语句**:当遇到错误...

    ABB机器人错误处理方法

    ABB机器人错误处理方法

    QTP错误处理机制概述

    - **OnError错误处理**:其次,如果定义了OnError,则在相应作用域内优先于全局错误响应。 - **全局错误响应**:作为最底层的错误处理机制,当其他机制未捕获错误时起作用。 总之,QTP提供了多层面的错误处理框架,...

    vbAddin_InsertErrHand vb集成环境错误处理代码添加 vb错误处理 vb错误处理插件 vb插件

    vb6集成环境on error错误处理代码添加插件。 安装方法很简单: 1.点击菜单“工程-引用”,选择这个dll 2.然后点击菜单“外接程序-外接程序管理器”,选择“Insert Error Hand”,把右下角两个框框都勾起来 3.这样你...

    oracle_plsql连服务端时 Initialization error could initialize错误处理方法

    解决:oracle_plsql连服务端时 Initialization error could initialize错误处理方法

    ASP.NET的错误处理机制

    需要注意的是,在处理完错误后通常会调用`Server.ClearError()`来清除错误,这样可以避免错误被多次处理或重复显示给用户。 #### 六、局部页面错误处理 除了全局错误处理外,ASP.NET还支持局部页面级别的错误处理...

    PHP的全局错误处理详解_.docx

    本文旨在详细介绍PHP中的全局错误处理机制,包括`error_reporting`和`set_error_handler`两个核心函数的使用方法。 #### 背景介绍 PHP作为一种动态解释型语言,虽然提供了极大的灵活性,但同时也意味着更容易出现...

    error message_errormessage_

    "error message_errormessage_" 这个标题可能是指一个特定的错误处理机制或者函数,其核心是创建一个与具体硬件或系统设备无关的错误传递方式。这样的设计使得程序的错误处理代码更加通用,适应性更强,可以在不同的...

    QTP错误处理机制概述(中文版).pdf

    QTP 提供了多种错误处理机制来确保测试脚本的稳定性和可靠性,这包括全局错误响应、VBScript 的 OnError 错误处理方式以及错误恢复场景(Recovery Scenarios)。以下是对这些错误处理机制的详细介绍: ### 一、全局...

    On Error Resume Next语句 On Error Goto 0语句 Err对象

    VBScript语言提供了两个语句和一个对象来处理“运行时错误”,它们分别是On Error Resume Next语句、On Error Goto 0语句和Err对象。这三者联合使用可以实现灵活的错误处理机制。 一、On Error Resume Next语句 On...

    WebView加载失败错误处理

    这时,我们需要对这些错误进行妥善处理,为用户提供友好的体验。本文将详细介绍如何在WebView加载失败时,自定义错误页面。 首先,我们来理解WebView的基本使用。在Android Studio中创建一个新的Activity,然后在...

Global site tag (gtag.js) - Google Analytics