diff options
author | Zach Copley <zach@controlyourself.ca> | 2009-02-11 21:41:56 -0800 |
---|---|---|
committer | Zach Copley <zach@controlyourself.ca> | 2009-02-11 21:41:56 -0800 |
commit | 9f035e2847e0d119ca3d70e02df6f4fa73ca64c3 (patch) | |
tree | 518d2eafdea2747ca3210595d34625d03f85c479 /lib/action.php | |
parent | 9d07032334043625a5aa3243d911bdc1c77a7a9c (diff) |
Code to handle PEAR_Errors raised by DB_DataObject that are bubbling
up, but are actually expected and can safely be ignored.
Diffstat (limited to 'lib/action.php')
-rw-r--r-- | lib/action.php | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/lib/action.php b/lib/action.php index bd38bf79c..e3a8ef62c 100644 --- a/lib/action.php +++ b/lib/action.php @@ -82,6 +82,17 @@ class Action extends HTMLOutputter // lawsuit */ function prepare($argarray) { + // This is for checking PEAR_Errors raised by DB_DataObject. + // Setting this to PEAR_ERROR_CALLBACK because setting + // to PEAR_ERROR_EXCEPTION does't work to allow PEAR_Errors + // to be handled as PHP5 exceptions, and PEAR_ERROR_RETURN + // does not cause DB_DataObject to actually return PEAR_Errors + // that can be checked with PEAR::isError() -- instead + // they just disappear into the ether, and can only be checked for + // after the fact. -- Zach + PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, + array($this, "checkDB_DataObjectError")); + $this->args =& common_copy_args($argarray); return true; } @@ -845,6 +856,21 @@ class Action extends HTMLOutputter // lawsuit } /** + * Check old fashioned PEAR_Error msgs coming from DB_DataObject + * + * Logs the DB_DataObject error. Override to do something else. + * + * @param PEAR_Error + * + * @return nothing + */ + + function checkDB_DataObjectError($error) { + common_log(LOG_ERR, $error->getMessage()); + // XXX: throw an exception here? --Zach + } + + /** * Returns the current URL * * @return string current URL |