首页 > 文章列表 > PHP 异常处理中的函数执行顺序如何?

PHP 异常处理中的函数执行顺序如何?

php 异常处理
291 2024-04-23

PHP 异常处理函数执行顺序为:异常对象构造函数set_exception_handler() 调用shutdown 函数exit() 调用

PHP 异常处理中的函数执行顺序如何?

PHP 异常处理中的函数执行顺序

在 PHP 中,当发生异常时,PHP 会按照以下顺序执行以下函数:

  1. 异常对象构造函数:异常对象将被创建,并传递给构造函数。
  2. set_exception_handler() 调用:如果已设置异常处理程序,则将调用该函数。
  3. shutdown 函数:所有已注册的函数和变量将被销毁。
  4. exit() 调用:脚本将退出,并返回状态代码 1。

实战案例:

<?php
try {
    throw new Exception('My Exception');
} catch (Exception $e) {
    echo 'Caught exception: ' . $e->getMessage() . PHP_EOL;
} finally {
    echo 'Finally block executed' . PHP_EOL;
}

执行顺序:

  1. 创建异常对象,并传递给 Exception 构造函数。
  2. 调用 set_exception_handler() 处理程序,因为此处未设置,所以跳过此步骤。
  3. 所有已注册的函数和变量将被销毁。
  4. 脚本将退出,状态代码为 1。

输出:

Caught exception: My Exception
Finally block executed

值得注意的是,即使异常在 finally 块中抛出,它也不会被捕获。