PHP 异常处理

2024 年 8 月 29 日 | 4 分钟阅读

异常处理是 PHP 的强大机制,用于处理运行时错误(运行时错误称为异常),以便可以维护应用程序的正常流程。

使用异常处理的主要目的是**维护应用程序的正常执行**。

什么是异常?

异常是程序未预期的结果,可以由程序本身处理。基本上,异常会中断程序的正常流程。但它与错误不同,因为异常可以被处理,而错误不能由程序本身处理。

换句话说——“程序意外的结果是一个异常,可以由程序本身处理。”异常可以在 PHP 中抛出和捕获。

为什么需要异常处理?

PHP 提供了一个强大的机制,即异常处理。它允许您处理运行时错误,例如 IOException、SQLException、ClassNotFoundException 等。异常处理最常见的例子是除零异常,这是一种算术异常。

注意:当异常中断程序或应用程序的正常执行时,需要异常处理。

异常处理在所有编程语言中几乎都相似。当发生指定的错误条件时,它会改变程序的正常流程,这种条件称为异常。PHP 为此提供了以下关键字:

try -

try 块包含可能存在异常或可能发生异常的代码。当在代码运行时 try 块内发生异常时,它会在 catch 块中被捕获和解决。try 块必须后跟 catch 或 finally 块。一个 try 块可以后跟最少一个、最多任意数量的 catch 块。

catch -

catch 块包含在抛出指定异常时执行的代码。它始终与 try 块一起使用,不能单独使用。当发生异常时,PHP 会找到匹配的 catch 块。

throw -

它是一个用于抛出异常的关键字。它还有助于列出函数抛出但不自行处理的所有异常。

请记住,每个 throw 必须至少有一个“catch”。

finally -

finally 块包含用于 PHP 中清理活动的代码。基本上,它执行程序中必不可少的代码。

当触发异常时会发生什么——

  • 代码的当前状态被保存。
  • 代码的执行切换到预定义的异常处理函数。
  • 根据情况,处理程序可以暂停程序执行,从保存的代码状态恢复执行,或者从代码中另一个位置继续执行代码。

异常处理优于错误处理的优点

异常处理是 PHP 中一个重要的机制,它相对于错误处理具有以下优点:

错误类型分组——

在 PHP 中,基本类型和对象都可以作为异常抛出。它可以创建异常对象的层次结构,并将异常分组到类中,并根据其类型进行分类。

将错误处理和正常代码分开——

在传统的错误处理中,if-else 块用于处理错误。这使得代码难以阅读,因为处理错误和条件的代码混杂在一起。在 try-catch 块中,异常与代码分开,代码变得可读。

示例

通过示例了解 PHP 中异常处理的工作原理——

示例 1

让我们举一个例子来解释 throw 和 try-catch 块的常见流程

输出

Exception Message: Value must be less than 1

示例 2:创建自定义异常

您可以通过扩展 Exception 类来创建用户定义的异常。请看下面的代码,了解如何创建用户定义的异常——

输出

Result of division = 6
Divide by Zero Exception!
Divide by Negative Number Exception!

要详细了解 try-catch 块,请单击此处


下一个主题PHP try-catch