Re: PHP5 silently throwing exceptions???

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Gerard Samuel wrote:
Im currently using php 5.0.3 on a dev box,
trying to figure out how to correctly use
exceptions in my code.

Exceptions can be "A Good Thing".

Per chance, I was monitoring the __autoload() function,
and Im noticing that calls are being made to
exception classes that I've setup.
But nothing is being actually thrown.

AFAIK you cannot throw an exception during the __autoload function. Or at least that was the way it was for me when I tried it back in 5.0.0b2. The answer I got was something along the lines of "the executor would have no idea where to return", but it made little sense to me and I probably am remembering that wrong anyways. :)


As I understand it, __autoload(), only gets called, if a class
file hasn't been loaded for a class.

Correct.

I know for a fact that all my exception classes are derived from
php's Exception class.

This is definitely a good practice as there are some internal functions for those classes that are VERY useful to your own Exceptions... and you cannot get the same functionality without extending the base Exception class.


I've debugged it down to this ->
//try
//{
   $db->connect();
//}
//catch(databaseException $e)
//{
//    throw $e;
//}

The ::connect() method is supposed to throw a databaseException if a connection cannot be made.
In my tests, connections are made, and the exception is not thrown.
But the try/catch block above, for some reason, tries to throw
the databaseException (according to __autoload()).
If I comment it out the try/catch block, __autoload()
doesn't try to load the databaseException object.

Um, perhaps you have things a little mixed up? __autoload is only used to get a definition for an unknown class; it doesn't actually do any object instantiation. It's used for "just in time" loading of a class definition if and only if the class / file hasn't already been included.



I dont know if this is a bug in my code, as Im still new to exceptions. Im just checking to see if anyone else experienced anything like this before...

Thanks


--
Teach a person to fish...

Ask smart questions: http://www.catb.org/~esr/faqs/smart-questions.html
PHP Manual: http://www.php.net/manual/en/index.php
php-general archives: http://marc.theaimsgroup.com/?l=php-general&w=2

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux