Slt,
existe t il l'équivalent en pascal de la fonction Exit(<code d'erreur>) qui permet de sortir d'une fonction en indiquant un code d'erreur ?
Sinon peut on l'implémenter facilement ?
Merci
Slt,
existe t il l'équivalent en pascal de la fonction Exit(<code d'erreur>) qui permet de sortir d'une fonction en indiquant un code d'erreur ?
Sinon peut on l'implémenter facilement ?
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 try // générère une exception avec un message personnalisé raise.Exception.Create('Mon message'); finally exit; end;
Modérateur Delphi
Le guide du bon forumeur :
- Les règles du forum tu liras
- La FAQ et les tutoriels tu consulteras
- La fonction Recherche tu utiliseras
- Google tu vénèreras
__________
Rayek World : Youtube Facebook
raise ne va-t-il pas lui même faire en sorte de sortir de la méthode ? En d'autres mots le exit est-il superflu ?Envoyé par Malatar
Je n'utilises pas souvent cette méthode donc je ne pourrais pas te répondre.Envoyé par slimjoe
Mais bon, ca depend où il veut intercepter l'erreur : à l'interrieur de la fonction ou à l'extérieur ?
Modérateur Delphi
Le guide du bon forumeur :
- Les règles du forum tu liras
- La FAQ et les tutoriels tu consulteras
- La fonction Recherche tu utiliseras
- Google tu vénèreras
__________
Rayek World : Youtube Facebook
oui bien sur on peut utiliser les exception pour y parvenir mais je trouve ça un peu "lourd" pour faire qqchose de finalement trés simple.
N'y aurait il pas une autre solution ? (un peut comme la Halt mais au niveau des fonctions)
merci
En quoi est-ce que raise est lourd ?Envoyé par franckgar
et bien au lieu d'écrire ça :
je voudrais écrire ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 try if <Erreur> then raise MonException.Create(<code d'erreur>); except On E: MonException do Result := MonException.<code d'erreur>; end;
ce qui me parrait plus simple d'écriture (.... mais on est d'accord ça fait la même chose).
Code : Sélectionner tout - Visualiser dans une fenêtre à part if <Erreur> then Exit(<code d'erreur>);
Ok je comprends mieux... toutes tes méthodes sont des fonctions et toutes ces fonctions retournent des entiers c'est ça ?Envoyé par franckgar
En gros, tu voudrais que Result := 123 te sorte de la fonction c'est ça ? Un peu comme le return de d'autres langages ?
Et ça est-ce que ça t'irais ce code ?
Pour l'appeller :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 procedure Exit(out Result: integer; const Code: integer); begin Result := Code; Abort; end;
J'ai rien testé tout est improvisé alors il est possible que ça plante
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 function MaFonction: integer; begin if <erreur> then Exit(Result, 123); end;.
[EDIT]
Bon je viens de tester et Abort semble être une mauvaise idée....
et pourquoi pas ca:Envoyé par franckgar
C'est pas Exit(code) mais bon, c'est toujours moin pire que try-raise-except?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 if <Erreur> then begin result:=<Code erreur>;Exit; End;
Comment dupliquer un disque...ça vous intéresse?
Tutoriel et code source delphi ici
Peut-être est-ce que tu pourrais t'inspirer de Abort qui soulève une exception silencieuse. J'imagine une classe dérivée de EAbort qui conserverait un numéro d'erreur et une fonction Abort(Code: integer) qui la soulèverait.
Partager