PHP错误处理指南

因为PHP是免费使用的,所以许多web开发人员使用这种编程语言来开发web应用程序。即使是最流行的web内容管理系统也基于这种编程语言。在PHP中处理错误与在其他编程语言中处理错误几乎是一样的。但是,如果开发人员是该语言的新手,第一次看到这些错误可能会感到害怕和烦恼。下面是一个例子。

if $x==1 {
    echo "Hello World!";
}

Parse error: syntax error, unexpected '$x' (T_VARIABLE), expecting '('

PHP中的语法错误消息与其他语言中的语法错误类似。任何了解这种语言的人都能够跟踪并修复这个错误。

Errors vs. Exceptions

许多人交替使用错误处理和异常处理。当我们说错误处理时,我们指的是捕获程序产生的错误的过程,这需要适当的操作。由于PHP采用了一种新的面向对象(OOP)方法来处理错误,所以引入了异常处理。它用于更改发生特定错误条件时处理代码执行的通常方式。通过这种方式,异常处理提供了比错误处理更好的技术。

PHP中的异常处理是如何工作的?

就像其他面向对象编程一样,PHP也使用以下与异常相关的关键字:

Try:这意味着如果异常没有触发,代码将正常执行,但是如果异常触发,那么它将调用“抛出”异常

Throw :每次触发一个异常时,一个“抛出”异常必须与至少一个“捕获”配对。

Catch:这段代码应该检索一个异常并创建一个包含异常信息的对象。

错误日志

错误日志在开发过程中非常重要,因为它允许开发人员查看在应用程序运行时记录的错误、警告、通知等。大多数情况下,在部署web应用程序时,所有的错误和警告都会被抑制,以防止普通用户看到将出现的错误。即使错误和警告对普通用户是隐藏的,web服务器仍然会记录网站遇到的每个事件。

使用die()或exit()处理错误

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
try {
    $connection2 = mysqli_connect('localhost', 'root1', 'Abc123456!', 'testx');
} catch (mysqli_sql_exception $ex) {
    die("Can't connect to the database! \n" . $ex);
}

在开发过程中,对开发人员来说,使用die或exit函数来停止代码是一种转到编码的风格。在代码甚至教程中,当通过数据库连接时,如果连接不正确或无效,则应用程序将调用这两个函数中的一个来停止程序的执行。这对于处理错误和跟踪代码非常有帮助,但是在部署应用程序时,这可能会吓到web应用程序的普通用户。错误如“致命错误:未捕获异常:无法连接到数据库!”“Mysqli_sql_exception”对最终用户没有帮助。当处理数据库连接的代码使用die或exit时,则无法在活动的web服务器上禁止这些错误消息。异常、通知等可以通过简单的web服务器配置或额外的PHP代码隐藏,这就是为什么抛出异常在处理PHP错误时更实用。

PHP FOR vs FOREACH性能比较
PHP HTTP客户端: Guzzle