Mam napisana prosta klase ktora dziedziczy po klasie Exception.
Wygląda ona nastepująco :
<?php class MySqlException extends Exception { public function __construct($message, $errorno) { //sprawdza czy nie ma błędów programisty ( 5000 - numer błędów wbudowanych w MySQL) if($errorno >= 5000) { $message = __CLASS__.' typ. Niepoprawne użycie klasy. '.$message; } else { $message = __CLASS__.' - '.$message; } //wywołanie konstruktora klasy macierzystej Exception parent::__construct($message, $errorno); } //przesłania metode toString klasy macierzystej - Exception public function __toString() { return ('Błąd: '.$this->code.' - '.$this->message); } } ?>
A oto kod objety blokiem try-catch :
<?php try { $con = new MySqlConnect(SQL_HOST, SQL_USER, SQL_PASS); $strsql = "SELECT author, title ". "FROM tblbooks ". "WHERE sold = 0 AND cat = '$category' ". "ORDER BY author LIMIT $recordoffset, ". PERPAGE; //pobiera zestaw rekordow $rs = $con->createResultSet($strsql, SQL_DB); while($row = $rs->getRow()) { } //całkowita liczba rekordów $totalrecords = $rs->getUnlimitedNumberRows(); //tworzy parametr category $otherparameter = "&category=$category"; if($numpages > 1) { $nav = new PageNavigator($pagename, $totalrecords, PERPAGE, $recordoffset, 4, $otherparameter); } } catch(MySqlException $e) { } catch(Exception $e) { } ?>
Problem polega na tym, iż mimo ze nie ma żadnego błędu klasa MySqlException i tak sie uruchamia i na ekranie zamiast właściwej treści pojawia sie takie cos : (pochodzi z mojej klasy MySqlException)
Cytat
Błąd: 0 - MySqlException -
Zanim wstawilem do kodu blok try-catch wszystko bylo ok......