From: Tomas V.V.Cox Date: Sun, 29 Jul 2001 04:25:33 +0000 (+0000) Subject: raiseError() now can accepts a PEAR error object in its first argument. With X-Git-Tag: PRE_ENGINE2_SPLIT~222 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1e2d51855c1fc7995fa3fb9892827433fe66a57c;p=php raiseError() now can accepts a PEAR error object in its first argument. With this, users can "re-throw" a previously created PEAR error object (very useful after the use of (push|pop)ErrorHandling) --- diff --git a/pear/PEAR.php b/pear/PEAR.php index 477f2d9c13..a98c04e60f 100644 --- a/pear/PEAR.php +++ b/pear/PEAR.php @@ -224,7 +224,7 @@ class PEAR * handling applied. If the $mode and $options parameters are not * specified, the object's defaults are used. * - * @param $message a text error message + * @param $message a text error message or a PEAR error object * @param $code a numeric error code (it is up to your class * to define these if you want to use codes) * @param $mode One of PEAR_ERROR_RETURN, PEAR_ERROR_PRINT, @@ -260,6 +260,14 @@ class PEAR $error_class = null, $skipmsg = false) { + // The error is yet a PEAR error object + if (is_object($message)) { + $code = $message->getCode(); + $userinfo = $message->getUserInfo(); + $error_class = $message->getType(); + $message = $message->getMessage(); + } + if ($mode === null) { if (isset($this) && isset($this->_default_error_mode)) { $mode = $this->_default_error_mode; @@ -453,7 +461,7 @@ class PEAR_Error $this->message = $message; $this->code = $code; $this->mode = $mode; - $this->userinfo = $userinfo; + $this->userinfo = $userinfo; if ($mode & PEAR_ERROR_CALLBACK) { $this->level = E_USER_NOTICE; $this->callback = $options;