diff options
author | Robin Appelman <icewind@owncloud.com> | 2012-12-07 16:09:29 +0100 |
---|---|---|
committer | Robin Appelman <icewind@owncloud.com> | 2012-12-07 16:09:29 +0100 |
commit | 65e4dc183c8424cc31f67ccddc2e4d6df5b56379 (patch) | |
tree | 7c6c1853156e53df1fc18fb07db21d1316eac55e /lib/db.php | |
parent | 75367f91e0c3691ebc1a143c99f73ca5532dba45 (diff) | |
download | nextcloud-server-65e4dc183c8424cc31f67ccddc2e4d6df5b56379.tar.gz nextcloud-server-65e4dc183c8424cc31f67ccddc2e4d6df5b56379.zip |
dont handle database exception in OC_DB
give the caller the option to handle the exception
Diffstat (limited to 'lib/db.php')
-rw-r--r-- | lib/db.php | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/lib/db.php b/lib/db.php index e63a7a20c81..6524db7581a 100644 --- a/lib/db.php +++ b/lib/db.php @@ -20,6 +20,19 @@ * */ +class DatabaseException extends Exception{ + private $query; + + public function __construct($message, $query){ + parent::__construct($message); + $this->query = $query; + } + + public function getQuery(){ + return $this->query; + } +} + /** * This class manages the access to the database. It basically is a wrapper for * MDB2 with some adaptions. @@ -320,21 +333,13 @@ class OC_DB { // Die if we have an error (error means: bad query, not 0 results!) if( PEAR::isError($result)) { - $entry = 'DB Error: "'.$result->getMessage().'"<br />'; - $entry .= 'Offending command was: '.htmlentities($query).'<br />'; - OC_Log::write('core', $entry, OC_Log::FATAL); - error_log('DB error: '.$entry); - OC_Template::printErrorPage( $entry ); + throw new DatabaseException($result->getMessage(), $query); } }else{ try{ $result=self::$connection->prepare($query); }catch(PDOException $e) { - $entry = 'DB Error: "'.$e->getMessage().'"<br />'; - $entry .= 'Offending command was: '.htmlentities($query).'<br />'; - OC_Log::write('core', $entry, OC_Log::FATAL); - error_log('DB error: '.$entry); - OC_Template::printErrorPage( $entry ); + throw new DatabaseException($e->getMessage(), $query); } $result=new PDOStatementWrapper($result); } |