Edit report at https://bugs.php.net/bug.php?id=65254&edit=1
ID: 65254 Comment by: ryan dot brothers at gmail dot com Reported by: ryan dot brothers at gmail dot com Summary: Exception not catchable when exception thrown in autoload with a namespace Status: Open Type: Bug Package: Scripting Engine problem Operating System: Linux PHP Version: 5.5.0 Block user comment: N Private report: N New Comment: Upon further testing, I can reproduce the issue without using namespaces with the following: <?php function __autoload($class) { require('ns_test.php'); throw new \Exception('abcd'); } try { test::go(); } catch (Exception $e) { echo 'caught'; exit; } ================================================= ns_test.php: <?php class test { } Previous Comments: ------------------------------------------------------------------------ [2013-07-12 18:41:12] ryan dot brothers at gmail dot com Description: ------------ In the following code, the exception is not caught. In PHP 5.3, the exception is caught, but in PHP 5.4 and PHP 5.5, the exception is not caught. The issue only occurs when the class is in a namespace. If I remove the namespace from the class, then the exception is caught. Test script: --------------- <?php function __autoload($class) { require('ns_test.php'); throw new \Exception('abcd'); } try { \ns_test\test::go(); } catch (Exception $e) { echo 'caught'; exit; } ================================================= ns_test.php: <?php namespace ns_test; class test { } Expected result: ---------------- caught Actual result: -------------- Warning: Uncaught exception 'Exception' with message 'abcd' in /tmp/test.php:6 Stack trace: #0 /tmp/test.php(11): __autoload('ns_test\test') #1 {main} thrown in /tmp/test.php on line 6 Fatal error: Call to undefined method ns_test\test::go() in /tmp/test.php on line 11 ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=65254&edit=1