Bonsoir,
Je me pose des questions sur l'utilisation des exceptions, j'aimerais bien ne pas les détourner... car "c'est le mal"... donc voici un petit exemple pour illustrer ma question :
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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 <?php class Chat { private $nom; public function __construct($nom = '') { try { if(strlen(trim($nom)) != 0) $this->nom = $nom; else throw new Exception('Vous devez donner un nom au chat !'); } catch(Exception $e) { echo $e->getMessage(); } } public function miaou() { echo 'miaou'; } } $monChat = new Chat(); echo '<hr />'; $monChat->miaou(); ?>
Lors de l'exécution de ce code, une exception est levée, car je n'ai pas donné de nom au chat... donc le code "s'arrête" dans le bloc try puisque le catch a capturé l'exception qui a été lancée... Ok.
MAIS, j'aimerais que si une exception est levée, alors l'objet devienne inutilisable en d'autres termes, le chat ne devrait pas faire miaou...
J'ai tenté dans ma class d'exception (qui étend la class Exception de PHP) d'arrêter le "truc", en mettant un bête die; évidemment çà arrête tout... mais je voudrais simplement "arrêter" mon objet, et faire en sorte que le reste de la page s'affiche.
Est-ce une bonne idée ? Ou une très mauvaise ?
Partager