PHP中的错误处理

PHP | 错误处理

创建脚本和Web应用程序时,错误处理是必不可少的部分。在任何程序中都没有错误处理代码,该程序似乎是不专业的,并且有潜在的安全风险。

处理PHP中的错误并不复杂且必要,因此程序知道遇到此类错误时应采取适当的措施。

有三种主要的错误检查方法,

  1. die()函数

  2. 自定义错误检查

  3. 报告错误

1)die()方法

此功能允许在发生特定错误时显示用户友好的消息。这允许程序与用户之间更好的交互。

例如,有一个代码找不到的文件。然后,它会打印出一个令人困惑和复杂的错误。

程序:

<?php

    //尝试打开一个文件 

    //在系统中不存在

    $file=fopen("technology.txt","r");

?>

输出:

PHP Warning:  fopen(technology.txt): failed to open stream: 

No such file or directory in /home/jdoodle.php on line 4

因此,如果找不到文件,为了更好地显示错误消息,可以编写以下程序,

程序:

<?php

    //检查文件名

    if(file_exists("technology.txt")) {

        $file = fopen("technology.txt", "r");

    } else {

        //如果找不到该文件,将显示消息

        die("Error: The mentioned file was not found");

    }

?>

输出:

Error: The mentioned file was not found

2)自定义错误处理功能

我们可以通过简单地创建函数来检查和自定义错误检查。存在错误时将调用它。

参数中至少需要传递两个参数。一种是错误级别,另一种是消息。最多可以一次传递五个参数。

语法:

function_name(level,message,error_file,line,context)

参数:

  • function_name:处理错误的错误函数的名称。

  • level:一个数字,指定错误的级别。

  • 消息:需要显示的消息

  • Error_file(可选):提及发生错误的文件的名称。

  • Line(可选):提及发生错误的行号

  • Context(可选):包含所有正在使用的变量及其值的数组

这是在尝试打印不存在的变量时进行自定义错误检查的程序。

程序:

<?php

    //错误处理功能

    function catching_Error($no, $str) {

        echo "<b>Error:</b> [$no] $str";

    }

    

    //设置错误处理程序

    set_error_handler("catching_Error");

    

    //错误触发功能

    echo($uu);

?>

输出:

<b>Error:</b> [8] Undefined variable: uu

trigger_error()函数

如果该函数或任何代码接收到逻辑上不正确的数据,则可以使用trigger_error()函数显示消息。

例如,老师只想招收那些安全性超过合格分数的学生,然后可以编写以下代码。

程序:

<?php

    //接受用户输入的标记

    $marks=(int)readline('Enter the marks :');

    if ($marks<=50) {

        trigger_error("Repeat this class since you are fail");

    }

?>

输出:

Enter the marks :43

PHP Notice:  Repeat this class since you are fail in /home/jdoodle.php on line 5

3)错误记录

通过使用函数error log()可以向特定文件或远程目标发送错误日志消息。

有什么比发送一封包含所发生错误描述的电子邮件更好呢?

程序:

<?php

    //检查错误的功能

    function checking_errors($no, $str) {

        echo "Error: [$no] $str";

        echo "technology has been notified";

        error_log("Error: [$no] $str",1,

        "[email protected]","From:[email protected]");

    }

    

    //设置错误处理程序

    set_error_handler("checking_errors",E_USER_WARNING);

    

    //触发错误

    $marks=43;

    if ($marks<=50) {

        trigger_error("Repeat this class since you are fail",E_USER_WARNING);

    }

?>

输出:

Error: [512] Repeat this class since you are failtechnology has been notifiedThe mail received by the user will beError: [512] Repeat this class since you are fail

以上是 PHP中的错误处理 的全部内容, 来源链接: utcz.com/z/334692.html

回到顶部