Gestion d' "erreur" avec trigger_error() - bien/pas bien ?

Gestion d' "erreur" avec trigger_error() - bien/pas bien ? - PHP - Programmation

Marsh Posté le 01-04-2008 à 12:07:23    

youp,
 
 
j'utilise trigger_error() à tout va pour gérer toute sorte d'erreur pour pouvoir gérer toutes les "erreurs" au même endroit et pour éviter d'avoir des catch/try partout (en gros, je throw mes "erreurs" là où elles se trouvent et je catch tout dans mon error_handler).
 
Le truc c'est que je fais ça aussi quand ce ne sont pas vraiment des erreurs (genre une connection DB qui ne se fait pas...) : par exemple pour faire une redirection.
 
Par exemple : si je ne trouve pas la page demandée, hop trigger_error('404',E_USER_ERROR) et dans le error_handler, je redirige vers une page par défaut.
 
Question : est-ce mal pas bien de faire ça :??: à part pit-être le fait que ça ne soit pas fait pour (ou si ?).
 
 
 
marchi :)


Message édité par art_dupond le 01-04-2008 à 13:08:21

---------------
oui oui
Reply

Marsh Posté le 01-04-2008 à 12:07:23   

Reply

Marsh Posté le 01-04-2008 à 14:26:59    

Je dirais que c'est mal. Très. Ton error_handler doit être monstrueux.[:pingouino]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 01-04-2008 à 15:24:41    

monstrueux ?
 
Je fais des trigger_error('404 message d\'erreur',E_USER_ERROR)
Après je sépare l'error string en '404' (= type d'erreur) + le reste (= un message d'erreur si je veux être plus spécifique)
et je fais

Code :
  1. switch($errorType)
  2. {
  3.    case '404':
  4.        // redirige vers telle page;
  5.    case '403':
  6.        // redirige vers telle page avec tel message;
  7.    default:
  8.        // log l'erreur et redirige vers une page par défaut
  9. }


 
ce qui me permet aussi de changer facilement la manière de gérer telle ou telle "erreur", de l'afficher, de l'écrire dans un fichier, d'envoyer un mail admin...
Je sais pas, ça m'a l'air tellement pratique.  
Tu verrais d'autres problèmes mis à part la monstruosité :p
 
 
 
edit: En fait, c'est juste que je centralise tout dans le error_handler au lieu de remonter "toutes les erreurs" vers mon script principal
 
Exemple :  
le script principal demande une page à la classe page qui elle-même demande la page à la classe DB_page.
Si la classe DB_page ne trouve pas de résultat, au lieu qu'elle retourne false, puis que la classe page retourne false et que le script principal traite cette erreur, je fais trigger_error('404') et zou.
 
 
 
ps: le php sert aussi à pouvoir n'importe quoi après tout :o


---------------
oui oui
Reply

Marsh Posté le 01-04-2008 à 15:39:05    

J'ai bien compris...mais pour moi c'est très très moche, justement, de tout centraliser comme ça.
Tu vas avoir un gros paté de switch pour tout gérer au lieu de tout gérer au cas par cas là où ça doit l'être...[:dawao]
Imagine qu'un jour tu as besoin de faire une requête, mais que finalement si la base de données n'est pas dispo et que ça plante c'est pas si grave, tu peux continuer à afficher la page en loggant l'erreur quelque part...bah tu peux pas, ta classe de DB a balancé un trigger_error qui te sort du déroulement normal de ton prog, tu l'as dans l'os.:o
Avec une Exception spécifique, ton bout de code qui veut faire la requête peut récupérer l'erreur, la traiter, et continuer comme si de rien n'était.:o

Message cité 1 fois
Message édité par skeye le 01-04-2008 à 15:40:01

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 01-04-2008 à 16:09:39    

si je peux reviendre dans mon code :o

 

et c'est bien ce que je fais pour les situations que tu cites :)

 

Il suffit de mettre un return à la fin du traitement de l'erreur :)

 

Donc c'est bien comme si je traitais l'erreur là où elle apparait dans le code, et je peux choisir d'en sortir ou de continuer le déroulement normal, exactement comme

skeye a écrit :

Avec une Exception spécifique, ton bout de code qui veut faire la requête peut récupérer l'erreur, la traiter, et continuer comme si de rien n'était.:o


:)


Message édité par art_dupond le 01-04-2008 à 16:11:15

---------------
oui oui
Reply

Marsh Posté le 01-04-2008 à 16:11:21    

pourquoi ne pas utiliser des exceptions, alors? Tu fais tout pour te rapprocher de leur fonctionnement, sans pour autant le faire vraiment...


Message édité par skeye le 01-04-2008 à 16:11:47

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 01-04-2008 à 16:19:25    

pour éviter de devoir remonter les erreurs vers le script qui doit les traiter.

 


Si j'ai vu l'homme qui a vu l'homme qui a vu l'homme qui a vu l'homme qui a vu l'ours,
je ne dois pas attendre que l'homme qui a vu l'ours dise à l'homme qui a vu l'homme qui a vu l'ours qu'il a vu l'ours, que lui-même le dise à l'homme qui a vu l'homme qui a vu l'homme qui a vu l'ours,  que lui même le dise à l'homme qui a vu l'homme qui a vu l'homme qui a vu l'homme qui a vu l'ours qui va enfin me le dire.

 


Là je sais directement qu'un homme a vu l'ours et je m'enfuis si je vois l'homme en question courir vers moi comme un dératé :)

  


Message cité 1 fois
Message édité par art_dupond le 01-04-2008 à 16:20:41

---------------
oui oui
Reply

Marsh Posté le 01-04-2008 à 16:22:20    

art_dupond a écrit :

pour éviter de devoir remonter les erreurs vers le script qui doit les traiter.
 
 
Si j'ai vu l'homme qui a vu l'homme qui a vu l'homme qui a vu l'homme qui a vu l'ours,  
je ne dois pas attendre que l'homme qui a vu l'ours dise à l'homme qui a vu l'homme qui a vu l'ours qu'il a vu l'ours, que lui-même le dise à l'homme qui a vu l'homme qui a vu l'homme qui a vu l'ours,  que lui même le dise à l'homme qui a vu l'homme qui a vu l'homme qui a vu l'homme qui a vu l'ours qui va enfin me le dire.
 
 
Là je sais directement qu'un homme a vu l'ours et je m'enfuis si je vois l'homme en question courir vers moi comme un dératé :)
 


 
M'enfin les exceptions sont là pour ça, enfin.[:pingouino]
Une exception elle remonte toute seule jusqu'à ce qu'elle tombe sur un catch qui l'attrape...t'as rien à faire toi-même à part écrire le catch qui va bien au bon endroit...[:pingouino]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 01-04-2008 à 16:25:07    

skeye a écrit :


 
M'enfin les exceptions sont là pour ça, enfin.[:pingouino]
Une exception elle remonte toute seule jusqu'à ce qu'elle tombe sur un catch qui l'attrape...t'as rien à faire toi-même à part écrire le catch qui va bien au bon endroit...[:pingouino]


+1

Reply

Marsh Posté le 01-04-2008 à 16:32:45    

oui je sais mais c'est pour éviter de devoir me poser des questions.
 
Je peux traiter les erreurs de même type provenant de différents endroits du code de la même façon et sans me poser de questions.
Je balance l'erreur dont je dis qu'elle est d'un certain type et je sais qu'elle va être traitée d'une certaine façon.
 
Avec les catchs, à chaque endroit où je suis susceptible d'attraper une erreur, je vais devoir mettre un switch pour savoir quoi faire en fonction de l'erreur, ce que je trouve moins pratique.
 
Enfin j'ai pas trop l'habitude avec la POO aussi alors peut-être que j'ai mal organisé mon script qui du coup fonctionne (de mon avis perso de nioub) de manière plus pratique comme ça.
 
 
M'enfin ce que tu as l'air de dire c'est que ça reviendrait au pire au même donc à priori, ça ne devrait pas me poser de problème non ?


---------------
oui oui
Reply

Marsh Posté le 01-04-2008 à 16:32:45   

Reply

Marsh Posté le 01-04-2008 à 16:35:54    

art_dupond a écrit :

oui je sais mais c'est pour éviter de devoir me poser des questions.


 
you fail at programming.


---------------
TRIPS RIGHT BUNCH F SHUTTLE TOM AND JERRY RIGHT YELLOW
Reply

Marsh Posté le 01-04-2008 à 16:39:15    

m'en fiche je fais du php :o


---------------
oui oui
Reply

Marsh Posté le 01-04-2008 à 16:40:50    

art_dupond a écrit :

oui je sais mais c'est pour éviter de devoir me poser des questions.

 

Je peux traiter les erreurs de même type provenant de différents endroits du code de la même façon et sans me poser de questions.

 

Non, c'est pire que ça. Tu est OBLIGE de les traiter de la même façon sans te poser de questions. [:aloy]

 
art_dupond a écrit :


Avec les catchs, à chaque endroit où je suis susceptible d'attraper une erreur, je vais devoir mettre un switch pour savoir quoi faire en fonction de l'erreur, ce que je trouve moins pratique.

 

[:pingouino] [:roane] [:pingouino]
Tu n'attrapes que les exceptions qui t'intéressent, pas toutes!!
Ton catch ne catche que le type d'exceptions que tu lui demandes de catcher!:o

 
art_dupond a écrit :

M'enfin ce que tu as l'air de dire c'est que ça reviendrait au pire au même donc à priori, ça ne devrait pas me poser de problème non ?

 

Non, ce que je te dis c'est que tout ce que tu trouves mieux avec ton système, est au mieux aussi bien, au pire nettement moins bien qu'avec des exceptions.

Message cité 1 fois
Message édité par skeye le 01-04-2008 à 16:44:08

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 01-04-2008 à 16:47:22    

skeye a écrit :

 

Non, c'est pire que ça. Tu est OBLIGE de les traiter de la même façon sans te poser de questions. [:aloy]

 



ah non, suffit que je donne un autre "nom" à l'erreur. Je ne regroupe que celle dont je suis certain qu'elle doivent être traitées de la même façon.
au pire, je change le nom de l'erreur là ou je la lance, mais ça reviendrait que d'aller chercher le catch pour cette erreur et d'y modifier le traitement

 
skeye a écrit :

 

[:pingouino] [:roane] [:pingouino]
Tu n'attrapes que les exceptions qui t'intéressent, pas toutes!!
Ton catch ne catches que le type d'exceptions que tu lui demandes de catcher!:o

 



Ah alors là c'est intéressant, je pensais que le catch attrapait toutes les exceptions lancées dans le try.

 


skeye a écrit :

 

Non, ce que je te dis c'est que tout ce que tu trouves mieux avec ton système, est au mieux aussi bien, au pire nettement moins bien qu'avec des exceptions.

 


En fait ce que je trouve bien, c'est d'avoir la gestion de toutes les erreurs centralisées et de ne pas devoir fouiller le code si je veux changer le traitement d'une erreur précise.

 

Mais vous avez l'air de trouver ça vraiment crade alors je vais quand même voir ce que ça donnerait si je faisais ça de façon normale :)

  


Edit: puis à quoi servent finalement les exceptions si ce n'est de pouvoir regrouper la gestion des erreurs. Sinon on ne ferait que des return false non ?

Message cité 1 fois
Message édité par art_dupond le 01-04-2008 à 16:50:26

---------------
oui oui
Reply

Marsh Posté le 01-04-2008 à 16:49:41    

art_dupond a écrit :


ah non, suffit que je donne un autre "nom" à l'erreur. Je ne regroupe que celle dont je suis certain qu'elle doivent être traitées de la même façon.
au pire, je change le nom de l'erreur là ou je la lance, mais ça reviendrait à aller chercher le catch pour cette erreur et d'y modifier le traitement


 
m'enfin il t'est jamais venu à l'idée que tu pourrais avoir un bout de code qui lève une exception et qui serait utilisé à 2 endroits différents dans deux contextes différents?[:pingouino]
Tu fais comment pour envoyer deux codes d'erreur, là? Tu dupliques le code? Tu ajoutes un paramètre quelque part?[:pingouino]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 01-04-2008 à 16:51:49    

à vrai dire non :p

 

tu aurais un exemple (désolé mais j'apprends :jap:)

 


edit: j'ai bien parfois un traitement d'erreur en fonction de la deuxième partie de mon message d'erreur (donc 1 premier tri suivant le type d'erreur, puis si nécessaire en fonction du reste). Je ne sais pas si c'est de ça que tu veux parler

Message cité 1 fois
Message édité par art_dupond le 01-04-2008 à 16:53:15

---------------
oui oui
Reply

Marsh Posté le 01-04-2008 à 16:57:25    

art_dupond a écrit :

à vrai dire non :p

 

tu aurais un exemple (désolé mais j'apprends :jap:)

 


edit: j'ai bien parfois un traitement d'erreur en fonction de la deuxième partie de mon message d'erreur (donc 1 premier tri suivant le type d'erreur, puis si nécessaire en fonction du reste). Je ne sais pas si c'est de ça que tu veux parler


[:prozac]

 
Code :
  1. function dawa(){
  2.     throw new TotozException("1!1!11!1!1!!!!11!" );
  3. }
  4.  
  5. //cas 1 : on veut juste logger le problème, ce n'est pas bloquant
  6. try{
  7.     $dawa(1);
  8. }
  9. catch(TotozException $e){
  10.     error_log($e->getMessage());
  11. }
  12.  
  13. //cas 2 : le programme ne peut pas continuer, au-secours§§§
  14. try{
  15.     $dawa(1);
  16. }
  17. catch(TotozException $e){
  18.     die($e->getMessage());
  19. }


Message édité par skeye le 01-04-2008 à 16:58:38

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 01-04-2008 à 16:59:51    

(et si ce topic est une blague du 1er avril tu mérites le pal [:pingouino])


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 01-04-2008 à 17:18:27    

mmm je dois dire que je n'ai encore jamais rencontré ce cas de figure.  
 
Ou peut-etre si, quand je change de comportement suivant que le site soit en dev ou en prod. Mais là, c'est simplement un switch dans ma fonction PrintError() qui dit quoi faire.
 
Enfin je vois un peu ce que tu veux dire et je vais réfléchier un peu à tout ça :)
 
 
merci en tout cas pour tes remarques :jap:


---------------
oui oui
Reply

Marsh Posté le 01-04-2008 à 17:19:42    

skeye a écrit :

(et si ce topic est une blague du 1er avril tu mérites le pal [:pingouino])


 :lol:  
 
 
malheureusement non, je suis juste un vrai neuneu, un vrai de vrai :)


---------------
oui oui
Reply

Marsh Posté le 01-04-2008 à 17:22:36    

art_dupond a écrit :

mmm je dois dire que je n'ai encore jamais rencontré ce cas de figure.


 
ça peut aussi être un cas où tu veux appeler une autre fonction en cas d'échec, un cas où tu veux que l'exception puisse remonter pour être traitée plus haut dans la pile d'appels, ...


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 01-04-2008 à 17:35:08    

mmm je sais pas. Mais c'est sans doute aussi lié à l'organisation du script.

 

Aussi (mais j'aurais pit-être dû le préciser directement), je ne dis pas que j'exclus l'utilisation des exceptions "normales". C'est juste que là, pour une série de chose (en tout cas les cas que j'ai rencontré), je trouve que ça marche bien comme ça et que c'est finalement assez pratique à l'usage.

 

Si je complète au besoin avec des try/catchs et que je n'aurai pas de soucis comme ça, alors je pense que je vais rester comme ça.

 

Mais je vais quand même y réfléchier fortement au vu de ton "mage-beurk" envers ce système.


Message édité par art_dupond le 01-04-2008 à 17:35:35

---------------
oui oui
Reply

Marsh Posté le 01-04-2008 à 20:44:10    

Tu n'es pas neuneu ;) J'ai le même point de vue.
 
De part le fonctionnement j'ai pas besoin de m'astreindre à mettre du blabla en plus :spamafote:
 
Si on doit réagir à une erreur je comprends mais si on a pas besoin mais simplement de dire à l'utilisateur qu'il a fait une boulette ou à l'admin que y'a un problème avec la base par exemple, je vois pas l'utilité ultime des exceptions, dit autrement c'est faisable avec des erreurs.
Alors pourquoi se faire chier à polluer le code avec des try/catch de partout qui en plus reviennent au même que générer une erreur puisqu'il faut lever l'exception :??:
Et si c'est un truc non prévu qui a merdé, si le code est bien foutu ça génère une erreur aussi, je vois pas l'apport des exceptions à part m'emmerder à mettre du catch de partout que je m'économise avec les erreur.
 
 
Alors peut être que c'est mieux, sauf que pour le moment j'en voit difficilement l'avantage. Dois je me forcer à utiliser un truc qui m'apporte rien pour l'instant :??:

Reply

Marsh Posté le 01-04-2008 à 23:57:16    

ouf merci, ça me rassure :)


---------------
oui oui
Reply

Marsh Posté le 02-04-2008 à 05:30:39    

Aller un comprimé de try{} matin, un de catch ce midi et tu me prendras un trow à 16h :whistle:

Reply

Marsh Posté le 02-04-2008 à 07:58:42    

leflos5 a écrit :

Alors pourquoi se faire chier à polluer le code avec des try/catch de partout qui en plus reviennent au même que générer une erreur puisqu'il faut lever l'exception :??:

 

C'est déprimant.[:pingouino]
Tu ne try/catches une exception que si tu veux la traiter dans le bout de code en question, sinon tu la laisses se propager.

 

Une levée d'exception a un mécanisme équivalent à celui de votre trigger_error, sauf qu'en plus tu peux catcher une exception à différents endroits au lieu d'avoir une grosse fonction qui fait tout au niveau le plus global de ton programme...

 

Ton trigger_error c'est une levée d'exception dont le bloc try est unique, englobant tout le programme, et le catch est ton error_handler.
Utiliser ce truc par rapport à des exceptions c'est s'imposer soi-même des contraintes, et se priver d'avantages gratuits.


Message édité par skeye le 02-04-2008 à 09:57:15

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 02-04-2008 à 10:11:41    

ah je viens de comprendre le "se propage tout seul" :p (je pensais qu'il fallait faire un try/catch à chaque "niveau" pour remonter l'erreur)

 

Mais non, suis-je bête et ne sais-je lire ce que tu me disais.

 

Donc en gros, suffit que je fasse un try/catch au tout début de mon script et c'est bon. J'ai bien compris (finalement) ? :)

  

ps: encore desoled, j'suis têtu parfois :p

Message cité 1 fois
Message édité par art_dupond le 02-04-2008 à 10:12:16

---------------
oui oui
Reply

Marsh Posté le 02-04-2008 à 10:12:50    

art_dupond a écrit :

Donc en gros, suffit que je fasse un try/catch au tout début de mon script et c'est bon. J'ai bien compris (finalement) ? :)


Si tu veux faire aussi moche avec les exceptions que sans, oui.:D


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 02-04-2008 à 10:15:59    

(je vais abandonner ce topic, je crois, sinon je vais finir par déprimer vraiment.[:roane])


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 02-04-2008 à 10:16:41    

du coup je me demande.
 
Dans quel cas tu utiliserais les erreurs par trigger_error ?


---------------
oui oui
Reply

Marsh Posté le 02-04-2008 à 10:17:46    

Aucun?


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 02-04-2008 à 10:18:38    

art_dupond a écrit :

du coup je me demande.
 
Dans quel cas tu utiliserais les erreurs par trigger_error ?


Jamais. Ca n'a aucun intérêt. C'est du bricolage qui date d'avant l'implémentation des Exceptions dans php.[:petrus75]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 02-04-2008 à 10:19:03    

skeye a écrit :


Si tu veux faire aussi moche avec les exceptions que sans, oui.:D


 :cry:  
 
 
 
 
ok je vois, du coup faut que je repense tout mon code  :sweat:  *continue de réfléchir...*


---------------
oui oui
Reply

Marsh Posté le 02-04-2008 à 10:19:35    

oki oki merci de ta patience en tout cas :jap:


---------------
oui oui
Reply

Marsh Posté le 02-04-2008 à 11:01:25    

Juste pour bien comprendre, est-ce correct de faire ça comme ça ?
 

Code :
  1. class B
  2. {
  3.    public function GetData()
  4.    {
  5.        $DB = new DB();
  6.        $DB->GetDBData(); // peut thrower une exception mais qu'on laisse remonter
  7.  
  8.        //fait autre chose
  9.        throw new Exception('message',code);
  10.    }
  11. }
  12. classe A
  13. {
  14.     public function Manger()
  15.     {
  16.         $B = new B();
  17.         try
  18.         {
  19.            $B->GetData();
  20.         }
  21.         catch(Exception $e)
  22.         {
  23.            // traitement de certaines exception (pas celles lancées dans la classe DB)
  24.            // ...
  25.            // remonter les autres exceptions (celle lancée par la classe DB)
  26.            throw new Exception($e->getMessage(),$e->getCode());
  27.         }
  28.     }
  29. }
  30. class C
  31. {
  32.     public function Boire()
  33.     {
  34.         $DB = new DB();
  35.         $DB->GetDBData(); // peut thrower une exception qu'on laisse remonter
  36.     }
  37. }


 
 

Code :
  1. try
  2. {
  3.     $A->Manger();
  4.     $C->Boire();
  5. }
  6. catch
  7. {
  8.     // traitement de l'exception de la classe DB remontée via A ou C
  9. }


---------------
oui oui
Reply

Marsh Posté le 02-04-2008 à 11:12:09    

Presque.

 

Il faut que tu te crées tes propres exceptions héritant d'Exception au lieu d'utiliser la classe générique Exception.
Comme ça tu ne catches que celles dont tu as besoin, et pas besoin de re-lancer une éventuelle exception lancée par $DB->GetDBData();

Message cité 2 fois
Message édité par skeye le 02-04-2008 à 11:12:14

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 02-04-2008 à 11:15:56    

ça donnerait plutot ça, donc, en gros:
 
 

Code :
  1. class B
  2. {
  3.   public function GetData()
  4.   {
  5.       $DB = new DB();
  6.       $DB->GetDBData(); // peut thrower une exception mais qu'on laisse remonter
  7.  
  8.       //fait autre chose
  9.  
  10.       throw new GetDataException('message',code);
  11.   }
  12. }
  13.  
  14.  
  15.  
  16. class A
  17. {
  18.    public function Manger()
  19.    {
  20.        $B = new B();
  21.        try
  22.        {
  23.           $B->GetData();
  24.        }
  25.        catch(GetDataException $e)
  26.        {
  27.           // traitement de l'exception GetData
  28.        }
  29.        catch(XYException $e){
  30.            // traitement de l'exception XY
  31.        }
  32.    }
  33. }
  34.  
  35.  
  36.  
  37. class C
  38. {
  39.    public function Boire()
  40.    {
  41.        $DB = new DB();
  42.        $DB->GetDBData(); // peut thrower une exception qu'on laisse remonter
  43.    }
  44. }


Code :
  1. try
  2. {
  3.    $A->Manger();
  4.    $C->Boire();
  5. }
  6. catch(DBException $e)
  7. {
  8.    // traitement de l'exception DB
  9. }


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 02-04-2008 à 11:17:19    

skeye a écrit :

Presque.
 
Il faut que tu te crées tes propres exceptions héritant d'Exception au lieu d'utiliser la classe générique Exception.
Comme ça tu ne catches que celles dont tu as besoin, et pas besoin de re-lancer une éventuelle exception lancée par $DB->GetDBData();


PHP n'a pas d'autre exception que Exception en built-in? Genre en Python il y a e.g. ValueError qui existe déjà (et plein d'autres, il y en a presque 2 douzaines), donc pour pas mal d'erreurs génériques pas besoin de se créer ses exceptions :o


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 02-04-2008 à 11:18:07    

skeye a écrit :

Presque.
 
Il faut que tu te crées tes propres exceptions héritant d'Exception au lieu d'utiliser la classe générique Exception.
Comme ça tu ne catches que celles dont tu as besoin, et pas besoin de re-lancer une éventuelle exception lancée par $DB->GetDBData();


ah oui pas bête :)
 
Encore une question :)
 
Comment faire lors de l'attrappage de l'exception, lui dire de retourner là où l'exception a été lancée et de continuer normalement ?


---------------
oui oui
Reply

Marsh Posté le 02-04-2008 à 11:18:40    

masklinn a écrit :


PHP n'a pas d'autre exception que Exception en built-in? Genre en Python il y a e.g. ValueError qui existe déjà (et plein d'autres, il y en a presque 2 douzaines), donc pour pas mal d'erreurs génériques pas besoin de se créer ses exceptions :o


 
non.[:sadnoir]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed