Maison  >  Article  >  développement back-end  >  Quel est l’ordre d’exécution des fonctions dans la gestion des exceptions PHP ?

Quel est l’ordre d’exécution des fonctions dans la gestion des exceptions PHP ?

王林
王林original
2024-04-17 15:54:01979parcourir

La séquence d'exécution de la fonction de gestion des exceptions PHP est la suivante : le constructeur d'objet d'exception set_exception_handler() appelle la fonction d'arrêt exit() appelle

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

Séquence d'exécution de la fonction PHP dans la gestion des exceptions

En PHP, lorsqu'une exception se produit, PHP Les fonctions suivantes sera exécuté dans l'ordre suivant :

  1. Constructeur d'objet d'exception : L'objet d'exception sera créé et passé au constructeur.
  2. Appel set_exception_handler() : Cette fonction sera appelée si un gestionnaire d'exceptions a été défini.
  3. Fonction d'arrêt : Toutes les fonctions et variables enregistrées seront détruites.
  4. Appel exit() : Le script se terminera avec le code d'état 1.

Cas pratique :

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

Séquence d'exécution :

  1. Créez un objet exception et passez-le au constructeur Exception. Exception 构造函数。
  2. 调用 set_exception_handler() 处理程序,因为此处未设置,所以跳过此步骤。
  3. 所有已注册的函数和变量将被销毁。
  4. 脚本将退出,状态代码为 1。

输出:

Caught exception: My Exception
Finally block executed

值得注意的是,即使异常在 finally

Appelez le gestionnaire set_exception_handler(), ignorez cette étape car elle n'est pas définie ici. 🎜🎜Toutes les fonctions et variables enregistrées seront détruites. 🎜🎜Le script se terminera avec le code d'état 1. 🎜🎜🎜🎜Sortie : 🎜🎜rrreee🎜Il convient de noter que même si l'exception est levée dans le bloc finally, elle ne sera pas interceptée. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn