|   | php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login | 
| 
 PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits              [2003-12-11 13:15 UTC] helly@php.net
 | |||||||||||||||||||||||||||
|  Copyright © 2001-2025 The PHP Group All rights reserved. | Last updated: Fri Oct 31 01:00:01 2025 UTC | 
Description: ------------ If I use __autoload() PHP says "__autoload threw an exception" while I throw an exception which would be caught somewhere between several catch statements. That means __autoload() first loads the Class for the thrown Exception then PHP searches a catch statement for the threwn exception. The first statement is for another Exception (the exception still is uncaught) so __autoload should load this class. But here it fails and says "__autoload threw an exception". A Workaround would be to require all Exceptions for all catch Statements before any exception is thrown. Reproduce code: --------------- // Be sure that Test1.php and Test2.php exists function __autoload($className) { echo '<br>' . $className; require_once ucfirst($className) . '.php'; echo 'loaded'; } // If I would do "require_once Test1.php;" here // everything would work try { throw new Test2(); } catch(Test1 $e) { } catch(Test2 $e) { } Expected result: ---------------- test2loaded test1loaded Actual result: -------------- test2loaded test1 Fatal error: __autoload threw an exception in /home/malkusch/http/index.php on line 13