si je connais un peu tout ca, mais je vois pas trop comment les utiliser, j'ai pas envie d'en foutre partout :/
karlkox
je suis pas tres C++ mais en plus de try, catch, finally y a pas un throw qui traine ?
godbout
antp a écrit a écrit :
Souvent messagebox/showmessage pour les trucs simples, sinon un fichier log, créé au démarrage du prog, accessible en global par Log->Add("erreur machin" );
pour tout ce qui est allocation mémoire:
try
{
}
__finally
{
}
(finally ça vient du Pascal, donc ça n'existe que dans C++Builder)
ça permet d'être sûr à 100% que la mémoire est libérée :
obj = new TObj;
try
{
peu importe ce qui se passe ici la mémoire sera libérée
}
__finally
{
delete obj;
}
En Pascal même si on fait un Exit (return du C) il passe par le finally, je pense qu'il fait de même en C++Builder.
Mais bon là c'est peut-être plus vraiment dans le sujet... Enfin c'est quand même dans la gestion des erreurs :D
L'histoire du log cree au demarrage c'est pas mal du tout. Bon pour le reste je bosse sous Visual :D
chrisbk
(me semble que finally existe aussi dans VC, cf msdn)
antp
Et vous utilisez catch(...) ou bien plutôt en filtrant les exceptions (genre un catch qui ne prend que les exception prévues) ?
je suis pas très clair là je crois :D
[jfdsdjhfuetppo]--Message édité par antp le 15-05-2002 à 11:54:10--[/jfdsdjhfuetppo]
Harkonnen
toute la difficulté de l'utilisation des try....catch provient justement du fait qu'il faut restreindre au maximum l'endroit ou l'erreur est susceptible de se produire
antp
Souvent messagebox/showmessage pour les trucs simples, sinon un fichier log, créé au démarrage du prog, accessible en global par Log->Add("erreur machin" );
pour tout ce qui est allocation mémoire:
try
{
}
__finally
{
}
(finally ça vient du Pascal, donc ça n'existe que dans C++Builder)
ça permet d'être sûr à 100% que la mémoire est libérée :
obj = new TObj;
try
{
peu importe ce qui se passe ici la mémoire sera libérée
}
__finally
{
delete obj;
}
En Pascal même si on fait un Exit (return du C) il passe par le finally, je pense qu'il fait de même en C++Builder.
Mais bon là c'est peut-être plus vraiment dans le sujet... Enfin c'est quand même dans la gestion des erreurs :D
godbout
Bonhomme a écrit a écrit :
Avec une classe de gestion des erreurs ça marche po mal!
Bonhomme
Tu pourrais detailler un peu plus ?
Merci
Godbout :D
godbout
Harkonnen a écrit a écrit :
Avec une gestion d'exception (try ... catch). J'encapsule la routine suspecte dans un try...catch, et je vois l'exception générée.
Sinon, avec une MessageBox() pour voir la valeur de certaines variables. Efficace..
Enfin je parlais pas de voir ou sont les erreurs, mais plutot de gerer une erreur inattendue et de gerer un fichier log.
Pour l'instant je cree un fichier log mais je fourni pas des renseignements precis parce que je fais des try catch assez grossiers.
Harkonnen
Avec une gestion d'exception (try ... catch). J'encapsule la routine suspecte dans un try...catch, et je vois l'exception générée.
Sinon, avec une MessageBox() pour voir la valeur de certaines variables. Efficace..
Bonhomme
Godbout a écrit a écrit :
Comment vous faites ?
Merci :D
Avec une classe de gestion des erreurs ça marche po mal!