* Set my include path here
*/$include_path= array('/include/this/dir','/include/this/one/too');set_include_path($include_path);spl_autoload_register();/**
* Assuming I have my own custom exception handler (MyException) let's
* try to see if a file exists.
*/try {
if( !file_exists('myfile.php') ) {
throw newMyException('Doh!');
}
include('myfile.php');
}
catch(MyException $e) {
echo$e->getMessage();
}/**
* The above code either includes myfile.php or throws the new MyException
* as expected. No problem right? The same should be true of class_exists(),
* right? So then...
*/$classname='NonExistentClass';
try {
if( !class_exists($classname) ) {
throw newMyException('Double Doh!');
}$var= new$classname();
}
catch(MyException $e) {
echo$e->getMessage();
}/**
* Should throw a new instance of MyException. But instead I get an
* uncaught LogicException blah blah blah for the default Exception
* class AND MyException. I only catch MyException so we've got on
* uncaught resulting in the dreaded LogicException error.
*/?>
By registering an additional autoload handler function that did nothing, I was able to stop throwing the extra Exception and only throw my own.