[dev] Code/Logic Exceptions vs. Execution Exceptions

Michael J Rubinsky mrubinsk at horde.org
Tue Jan 17 22:05:44 UTC 2012


Quoting Michael M Slusarz <slusarz at horde.org>:

> Before I throw this into CODING_STANDARDS, wanted to run this by the list.
>
>
> Exceptions in Framework Packages
> ================================
>
> Exceptions thrown in packages can be divided into two categories:  
> code/logic exceptions and execution exceptions.
>
> Code/Logic Exceptions
> ---------------------
>
> These are exceptions that should be thrown when there is an issue  
> with the programming logic - e.g. the environment was not properly  
> set up by an application, or a required parameter was not provided.
>
> These type of exceptions should throw one of the SPL Exceptions  
> (e.g. BadFunctionCallException, LogicException, RuntimeException),  
> NOT a package exception.  This ensures that errors will normally  
> cause a fatal error, rather than potentially being caught and  
> ignored by the calling code.  As such, there is no need to document  
> the exception in phpdoc.  Further, the exception messages should not  
> be translated, as these messages are intended for developers not  
> users.

Agreed.

> Execution Exceptions
> --------------------
>
> These are exceptions that are thrown due to an error encountered  
> while performing the action requested by the calling code.
>
> Any package that throws at least one execution Exception should  
> define a Package_Name_Exception class that extends Horde_Exception.   
> Execution Exceptions should use this class when throwing an error.   
> Any method that throws this kind of exception should document it in  
> the phpdoc using the @throws keyword.  These messages should be  
> translated, as they potentially could be displayed to the user at  
> the application level.

Agreed, though I thought at one point we agreed that exceptions that  
would be expected to only make it to a log would not be translated.  
Either way, fine with me as long as it's standardized.

-- 
mike

The Horde Project (www.horde.org)
mrubinsk at horde.org



More information about the dev mailing list