Gérer les erreurs ? [C++] - Programmation
Marsh Posté le 15-05-2002 à 11:38:56
Godbout a écrit a écrit : Comment vous faites ? Merci |
Avec une classe de gestion des erreurs ça marche po mal!
Bonhomme
Marsh Posté le 15-05-2002 à 11:39:41
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..
Marsh Posté le 15-05-2002 à 11:49:41
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.
Marsh Posté le 15-05-2002 à 11:49:57
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
Marsh Posté le 15-05-2002 à 11:51:06
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
Marsh Posté le 15-05-2002 à 11:52:10
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
Marsh Posté le 15-05-2002 à 11:53:57
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
[jfdsdjhfuetppo]--Message édité par antp le 15-05-2002 à 11:54:10--[/jfdsdjhfuetppo]
Marsh Posté le 15-05-2002 à 12:01:34
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 |
L'histoire du log cree au demarrage c'est pas mal du tout. Bon pour le reste je bosse sous Visual
Marsh Posté le 15-05-2002 à 14:02:01
je suis pas tres C++ mais en plus de try, catch, finally y a pas un throw qui traine ?
Marsh Posté le 15-05-2002 à 14:04:24
si je connais un peu tout ca, mais je vois pas trop comment les utiliser, j'ai pas envie d'en foutre partout
Marsh Posté le 17-05-2002 à 17:21:35
quelle merde
(up disguised)
(super english)
Marsh Posté le 15-05-2002 à 11:36:07
Comment vous faites ?
Merci
---------------
Super.