在 PHP 中,异常是在程序运行时发生的错误,如果不加以处理,会导致程序终止运行。为了处理异常情况,可以使用 PHP 的异常处理机制,主要包括以下几个关键字:try
、catch
、throw
和 finally
。
try
语句块包裹可能抛出异常的代码。catch
语句块捕获并处理异常。可以指定多个 catch
语句块来捕获不同类型的异常。throw
语句显式抛出异常。可以在 catch
语句块中使用 throw
语句重新抛出捕获的异常,或者在程序的其他地方抛出异常。finally
语句块,无论是否发生异常,都会执行该语句块中的代码。以下是一个简单的 PHP 异常处理示例:
<?php
function divide($numerator, $denominator) {
if ($denominator == 0) {
throw new DivisionByZeroException("除数不能为 0");
}
return $numerator / $denominator;
}
try {
echo divide(10, 2) . "\n"; // 输出 5
echo divide(10, 0) . "\n"; // 抛出异常
echo divide(10, 5) . "\n"; // 不会执行,因为上一个语句抛出了异常
} catch (DivisionByZeroException $e) {
echo "捕获到异常:" . $e->getMessage() . "\n"; // 输出 "捕获到异常:除数不能为 0"
} finally {
echo "无论是否发生异常,都会执行该语句块\n";
}
?>
在这个示例中,我们定义了一个 divide
函数,用于计算两个数的除法。当除数为 0 时,我们抛出一个自定义的 DivisionByZeroException
异常。在 try
语句块中,我们调用 divide
函数,并捕获可能抛出的异常。如果捕获到异常,我们在 catch
语句块中处理它;否则,程序将继续执行。最后,无论是否发生异常,我们都会在 finally
语句块中执行一段代码。