Salut tout le monde,

Dernièrement j'ai revu ma manière de gérer mes erreurs dans un formulaire ou ailleurs à l'aide des exceptions.
C'est à dire que je fais comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
if(isset($_POST['valid']) && $_POST['valid']=="Envoyer"){
        try {
            $commentaire = new Commentaire();
            $commentaire->setDbh($dbh);
            $commentaire->setTitre($_POST['titre']);  
            $commentaire->setCommentaire($_POST['commentaire']); 
            $commentaire->setDateCommentaire(date("Y-m-d"));
            $commentaire->setIdUser(0);
            $commentaire->setMail($_POST['mail']); 
        }
        catch (Exception $e){
            $smarty->assign('erreur',$e->getMessage());
            $smarty->display('commentaire.tpl');
        }
Toutes les erreurs de syntaxe etc etc sont gérées dans mes setters de ma classe et lèvent des exceptions
exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
public function setCommentaire($commentaire){
            if(is_string($commentaire)){
                $commentaire = strip_tags($commentaire);
                $commentaire = htmlentities($commentaire);
                $this->commentaire = $commentaire;
            }
            else throw new Exception("Erreur d'insertion commentaire");
        }
J'ai un petit problème en faisant la gestion des erreurs de cette manière, étant donné qu'on lève une exception nouvelle pour chaque erreur, je ne peux afficher qu'une seule erreur à la fois.
C'est moche si jamais l'utilisateur se trompe sur plusieurs champs !

Auriez vous une idée pour pallier à ce problème ?
Pensez vous que cette manière de gérer les erreurs soit mauvaise ?

Merci d'avance