PHP5: Pourquoi est-try / catch ne?
Question
Sur mon XAMPP / Win XP construire, PHP5.2.3 ne prendre aucune exception. Aucun des exemples travail , et ceci:
try {
throw new Exception('Fail');
} catch (Exception $e) {
echo 'Succeed';
}
... les résultats dans:
Erreur fatale : Uncaught exception 'Exception' message 'Fail' dans M: \ chemin \ vers \ test.php: 4 Trace de la pile: # 0 {Main} Renvoyé dans M: \ chemin \ \ test.php à la ligne 4
Tous les paramètres d'erreur de PHP semblent standard. Serveur est Apache / 2.2.4
La solution
Cela dépend de eAccelerator de construire dans XAMPP. À un moment donné, il avait mal à l'optimisation des déclarations try / catch et simplement les ignorer.
Le problème était en 0.9.5. XAMPP est actuellement livré avec eAccelerator 0.9.5.3, même si elle est désactivée par défaut. Donc, cela pourrait ne pas être votre problème.
Selon le ChangeLog , XAMPP n'a pas utilisé PHP 5.2. 3 et Apache 2.2.4 dans un temps long, ce qui est également au moment du bug eAccelerator. Je recommande de vérifier votre version eAccelerator et peut-être la mise à niveau XAMPP.
Autres conseils
Je reçois « Succeed » en sortie en cours d'exécution de votre script, à la fois autonome sur la ligne de commande et via apache sur un serveur web ainsi que dans xampplite. J'sais ce qui est différent de votre configuration