Hi,

comments inline.


Am 25.11.2011 09:56, schrieb Sebastian Krebs:
Hi,

Just to throw my 2 cent in: Im with Micheal. An application, that tries to access a class, that doesn't exists, is broken and a FATAL is valid. This application doesn't need try-catch, but a bugfix (and if it is already
released: A better testing management).

How you will be informed about that the application breaks? OK, you can do this with a good log management tool or a log server. But the easiest way is to write a mail. An other problem is that the user sees mostly a white page on a fatal error. An other advantage of the exception approach is that you can collect data from session, from request or from server and send this with the mail. With a fatal error this isn't possible.

Your objection with the test management is valid. But I'd rather be insured against all accidents.

The problem is that the engine allows to throw exceptions. So either we need a solution to handle all cases or it shouldn't possible to throw exceptions. The particular approaches shouldn't be the problems here.

On the other side an application, that makes use of dynamic class names should make use of class_exists() in any case. An exception after calling class_exists() is just bad, but the classloader cannot distinguish between
the reasons, why it is called.

2011/11/25 Christian Kaps <christian.k...@mohiva.com>

Am 25.11.2011 08:24, schrieb Michael Wallner:

 On Thu, 24 Nov 2011 23:28:35 +0100, Christian Kaps wrote:



https://wiki.php.net/rfc/**autoloader_error_handling<https://wiki.php.net/rfc/autoloader_error_handling>


Throwing an exception or fatal error in an autoloader
absolutely does not make any sense in my eyes.
Projects doing this should step back and think a
minute about what they dare.

Mike


Hi,

how would you bring your application in a consistent state after a class couldn't be loaded. I do this by adding a try/catch block around my code.

try {
   new Application();
} catch (Exception) {
   // collect data
   // send mail
   // redirect to maintenance page
}

An other question is, if the autoloader work silent and I write:

new NotExistingClass();

I think in this case the engine will also trigger a fatal error. So in my eyes it is regardless of whether it trigger a fatal error in the autoloader or the autoloader works silent. Both cases ends in a fatal error. Or am i
wrong here?

Christian


--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php




--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to