Nieuw lid |
|
Je moet een exception die gegooid wordt altijd ergens opvangen. De zend exception moet ook ergens worden opgevangen. Dat hoeft niet noodzakelijk in dezelfde klasse te gebeuren.
Een voorbeeld:
<?php
class MySQLException extends Exception {
public $backtrace;
public function __construct($message = false, $code = false) {
if (!$message) {
$this->message = mysql_error();
}
if (!$code) {
$this->code = mysql_errno();
}
$this->backtrace = debug_backtrace();
}
public function __destruct() {}
}
class MySQL {
public function connect() {
$this->dbh = mysql_connect($this->hostname, $this->username, $this->password);
if (!is_resource($this->dbh)) {
throw new MySQLException; // Gooien van de exception.
}
if (!mysql_select_db($this->database, $this->dbh)) {
throw new MySQLException;
}
}
}
try {
$mysql = new MySQL();
$mysql->connect();
} catch (Exception $e) {
print_r($e);
}
?>
<?php class MySQLException extends Exception { public $backtrace; public function __construct($message = false, $code = false) { if (!$message) { } if (!$code) { } } public function __destruct() {} } public function connect() { $this->dbh = mysql_connect($this->hostname, $this->username, $this->password); throw new MySQLException; // Gooien van de exception. } throw new MySQLException; } } } try { $mysql->connect(); } catch (Exception $e) { } ?>
|