New SPL exceptions proposal

From: Date: Tue, 11 Nov 2008 16:16:37 +0000
Subject: New SPL exceptions proposal
Groups: php.internals 
Request: Send a blank email to internals+get-41855@lists.php.net to get a copy of this message
Hello *internals* and Marcus! What do you think about possibility to implement to PHP 5.3 several useful default exceptions? (note that InvalidArgumentException, RuntimeException and LogicException exists since PHP 5.1) /** * The exception that is thrown when the value of an argument is * outside the allowable range of values as defined by the invoked method. */ class ArgumentOutOfRangeException extends InvalidArgumentException {} /** * The exception that is thrown when a method call is invalid for the object's * current state, method has been invoked at an illegal or inappropriate time. */ class InvalidStateException extends RuntimeException {} /** * The exception that is thrown when a requested method or operation is not implemented. */ class NotImplementedException extends LogicException {} /** * The exception that is thrown when a requested method or operation is deprecated. */ class DeprecatedException extends LogicException {} /** * The exception that is thrown when an invoked method is not supported. For scenarios where * it is sometimes possible to perform the requested operation, see InvalidStateException. */ class NotSupportedException extends LogicException {} /** * The exception that is thrown when an I/O error occurs. */ class IOException extends RuntimeException {} /** * The exception that is thrown when accessing a file that does not exist on disk. */ class FileNotFoundException extends IOException {} /** * The exception that is thrown when part of a file or directory cannot be found. */ class DirectoryNotFoundException extends IOException {} And the last one (this is something like BadMethodException, but for properties) /** * The exception that is thrown when accessing a class member (property or method) fails. */ class MemberAccessException extends LogicException {} David Grudl

« previous php.internals (#41855) next »