erreur et exception

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : erreur et exception

par Invité » 11 sept. 2005, 14:33

normalement ton code doit effectivement te retourner une exeption si tu te trompes de nom de variable.
mais sans voir l'ensemble du code difficile à dire.

sinon je vois que tu utilise '$this->conn' à l'intérieur de ton code, donc j'imagine que ce code est à l'intérieur d'une classe.
si c'est le cas alors je rajouterais deux trois trucs.

les exeptions appartiennent au monde de la poo, tandis que les erreurs appartiennent au monde du procédural.
php n'est pas un langage objet mais procédural, donc la majorité de ses fonctionnalités renvoient des erreurs et non des exeptions.

dans un langage objet 'mysql_select_db' serait une méthode de classe alors qu'avec php c'est une fonction.
donc dans un langage objet 'mysql_select_db' renverrait une exception gérable avec try/catch alors qu'ici php renvoit une erreur.
donc dans un langage objet tout est gérable avec try/catch, ce qui n'est pas le cas avec php qui demande de gérer les erreurs avec des 'if' ou des 'or'(vu ton code tu l'avais compris).

grace à php5 tu peux maintenant implémenter des exeptions.
seulement tes méthodes de classe ne doivent pas gérer les exceptions mais juste te les renvoyer.
les exceptions sont à gérer à l'intérieur de ton code, ce qui te permet de prendre la bonne décision selon l'utilisation de ta classe.

un autre avantage serait que tu peux englober une dizaine de méthodes susceptibles de te renvoyer des exceptions à l'interieur d'un seul bloc try(une autre raison de ne pas traiter les exceptions à l'intérieur d'une classe), alors qu'en procédural tu devrais tester chaque fonction.

saches aussi que les exeptions se propagent j'usqu'à être attrapée, donc peut importe d'où elles partent.
si l'exception n'est pas atrapée, le script s'arrête.

en gros les classes sont faites pour les développeurs alors que les scripts sont fait pour les utilisateurs.
donc ça serait plutôt normal qu'une classe te prévienne d'un problème alors qu'un script devrais s'occuper de gérer le problème.

après ce que je vient de dire est plutôt scolaire, donc c'est à toi de voir ce qui t'arrange.
perso je n'utilise pas les exceptions pour traiter mes erreurs vu que j'estime que php n'est pas fait pour(tout ça pour en arriver là...).

pour finir la bibliothèque dom ,qui est objet, renvois des exeptions et non des erreurs.

pas trop indigeste?

erreur et exception

par jeff » 10 sept. 2005, 22:49

salut
je viens d'implementer la class exception qui permet de gérer les exception avec php5
je me pose une question quelle est la difference entre une erreur et un exception

ex:
try{
				if(FALSE===mysql_select_db($db,$this->conn))
					throw new MyException('Base introuvable sur le serveur MySQL');
					}
				catch(MyException $e)
				{	
					echo 'function usager'.$e->customFunction().'<br />';
					echo 'message'.$e->getMessage().'<br />';
					echo 'code'.$e->getCode().'<br />';
				}
si par exemple pendant l'ecriture du code j'ecris $dbb a la place de $db cela genere une notice(mais theoriquement la fonction mysql_select_db devrai retourner false)
maintenant si $db='baseR' alors que ma base est base dans ce cas php génére une exception

j'aimerai realiser un gestionnaire d'erreurs mais je ne sais pas comment m'y prendre entre les erreurs et les exceptions???
merci