summaryrefslogtreecommitdiffstats
path: root/lib/db.php
diff options
context:
space:
mode:
authorRobin Appelman <icewind@owncloud.com>2012-12-07 16:09:29 +0100
committerRobin Appelman <icewind@owncloud.com>2012-12-07 16:09:29 +0100
commit65e4dc183c8424cc31f67ccddc2e4d6df5b56379 (patch)
tree7c6c1853156e53df1fc18fb07db21d1316eac55e /lib/db.php
parent75367f91e0c3691ebc1a143c99f73ca5532dba45 (diff)
downloadnextcloud-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.php25
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);
}