Re: Re: [ZEND-ENGINE-CVS] cvs: ZendEngine2 / zend_default_classes.c zend_default_classes.h zend_execute.h zend_execute_API.c

From: Date: Fri, 13 Feb 2004 17:54:29 +0000
Subject: Re: Re: [ZEND-ENGINE-CVS] cvs: ZendEngine2 / zend_default_classes.c zend_default_classes.h zend_execute.h zend_execute_API.c
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-7815@lists.php.net to get a copy of this message
> > The reasoning is that it allows users to do a catch-all (which otherwise > we'd add to the language syntax). It also adds cleanliness to the Exception > hierarchy and allows PHP code to interact with PHP code which isn't written > by the developer knowing that there's a common interface (such as > getMessage()) which the exception always adheres to. That improves the > ability of exception handling especially debugging and logging > significantly. > That second part is a Throwable interface, not a base class (and Exception isn't even an ABC.) > i.e. > > try { > ...// Main code which calls PEAR, SOAP, Smart, external stuff and > so on.... > } catch (Exception $e) { > print "Damn something is really wrong here\n"; > print $e->getMessage(); > } > I get the concept, that's the reason Exception was added. But its meant to be a voluntary thing (I believe this has been discussed before btw), a standard class that gives users something to build upon, should they want to. I think an all-your-base-is-belonging-to-Exception is the wrong way to go. If you really want a catch-all or some type of consistency the way to go is either a Throwable interface (which makes it more of a pain to write exceptions) or the generic: catch ($e) { } syntax. _Sterling -- "Reductionists like to take things apart. The rest of us are just trying to get it together." - Larry Wall, Programming Perl, 3rd Edition

« previous php.internals (#7815) next »