interogation sur comment capter les erreurs

interogation sur comment capter les erreurs - Perl - Programmation

Marsh Posté le 13-08-2010 à 15:22:18    

Bonjour,
 
 
J'ai vu sur le net que pour catcher une erreur,
il fallait la mettre dans un bloc eval.
 
eval
{
mon code
};
if($@)
{
je fais cela
}
 
je souhaiterai faire un test,
car j'utilise un copy dans mon code.
 
Je fais :

Code :
  1. eval{
  2. copy(fichier1,fichier2);
  3. };
  4. if($@)
  5. {
  6. print "Erreur";
  7. }


 
Si je comprends bien , pour que cela fonctionne je suis obliger de mettre un or die apres mon copie pour que cela marche ?

Code :
  1. copy(fichier1,fichier2) or die "Probleme";

si je ne met rien , il ne se passe rien.
 
 
Comment faire pour générer un plantage avec le copy ?
 
Merci

Reply

Marsh Posté le 13-08-2010 à 15:22:18   

Reply

Marsh Posté le 13-08-2010 à 16:13:35    

Quelque chose comme ceci devrait convenir, non?

Code :
  1. if (copy(fichier1,fichier2)) {
  2. ...
  3. } else {
  4. die "Error: $!";
  5. }


A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 16-08-2010 à 08:39:26    

merci gilou
donc si je comprends bien
je met des else die la ou je fais un copy,
et j englobe tout mon code dans un eval
et ensuite je teste le $@

Reply

Marsh Posté le 16-08-2010 à 10:58:43    

Eh bien déjà, si tu expliquais clairement ce que tu veux faire et pourquoi, on pourrait te répondre de manière plus précise.
 
eval {un bloc de code perl} ça évalue ton code perl sans planter ton interpréteur et ca positionne $@ si une erreur d'exécution survient (mais pas une erreur de parsing).
En particulier, un die va positionner $@
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Sujets relatifs:

Leave a Replay

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