Page 1 sur 1

Les exceptions...

Posté : 25 mai 2011, 14:45
par albius
Bonjour/ bonsoir,

Je provoque volontairement une erreur dans le code suivant (l'erreur est soulignée)
private function getListeFamilles() {
        $select = $this->db->prepare('select, famille from famille_prix'); //--> erreur
        try {
            $select->execute();
            while ($data = $select->fetch()) {
                echo '<option value="'.$data->id_fp.'">'.$data->famille.'</option>';
            }
            $select->closeCursor();
        } catch (ActionException $e) {
            header('Location:'.self::$erreurPage);
            exit();
        }
    }
Et n’obtiens pas le résultat désiré, c'est à dire la redirection vers une page d'erreur ($erreurPage). Au lieu de cela, j'ai un message d'erreur brute de fonderie qui s'affiche dans la page, comme si l'exception n'était pas gérée... Pourquoi ?
Merci,
Ps : ActionException est une extension de la classe Exception

Re: Les exceptions...

Posté : 25 mai 2011, 15:37
par Maskime
Hello,

T'as essayé de mettre lre prepare() dans le try{} pour être sûr que l'exception va être catchée.
De plus pour le catch() rajoute un catch(Exception $oException)

Re: Les exceptions...

Posté : 25 mai 2011, 17:27
par albius
C'est bizarre. Si je remplace l'extension 'ActionException' par la classe native Exception, cela fonctionne bien (la redirection s'effectue bien)
Pourtant, je n'ai fait que l'étendre
class ActionException extends Exception {}
...
Merci pour la réponse,

Re: Les exceptions...

Posté : 26 mai 2011, 11:11
par Maskime
Ben la question qu'il faut que tu te poses est la suivante :
"Est ce que l'exception envoyée est bien du type ActionException ?"

Parce que oui ton exception hérite bien de la native mais encore faut il que se soit bien celle là qui est envoyée...