Bonjour,
Je veux traiter toutes les exceptions mais il y a quelques exceptions que je suis pas arrivée à les traiter.
Y a t il un truc globale permettant de fermer l'application lors de détection d'une exception
Merci
Bonjour,
Je veux traiter toutes les exceptions mais il y a quelques exceptions que je suis pas arrivée à les traiter.
Y a t il un truc globale permettant de fermer l'application lors de détection d'une exception
Merci
Salut
Si tu veux traiter une exception avant une autre il suffit de placer le catch avant, puis pour quitter ton appli dans le dernier catch avec l'ellipse tu calle un return ou exit et ca devrait suffir je pense.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 try { //ton code } catch (...) { //ici tu traite toutes les exceptions }
j'ai pas tout compris ceux que tu expliquais, donc j'espère que tu n'attendais que ca.
Bonne soirée
merci jroman pour votre réponse mais c'est pas ça ce que je veux exactement.
J'ai fait try{} catch (exception ex){}. mais le pb est qu'il y a des autres exceptions qui ne sont pas traité. Est ce qu'il y a une solution qui permet de gérer toutes les exceptions. C'est à dire s'il y a des exceptions non gérée alors ce truc permet de fermer l'application.
Merci
Bonjour,
Tu peux utiliser ... qui permet de récupérer toutes les autres exceptions. (comme l'a dit jroman)
Sinon si une exception ne peut être attrapée la fonction std::terminate est appelée, tu peux régler cette fonction avec std::set_terminate, par defaut ca appel abort qui a pour conséquence de terminer assez abruptment le programme (pas d'execution des fonctions de sorties normalement executées par exit, ni des destructeurs des objets).
Bonjour,
Merci Flob90 mais votre réponse n'est pas très clair.
EN fait je vais expliquer ce que je veux par un exemple dans un projet C++/CLI.
J'ai fait un try{....} catch (Exception ^ex) {exit(0);}. Lorsque j'ai lancé l'exécution, j'ai trouvé cette exception
Une exception non gérée du type 'System.ObjectDisposedException' s'est produite dans System.dll
Informations supplémentaires*: Le handle sécurisé a été fermé
cette exception est non catché par ce bloc.
Il y a des autres exceptions qui ne sont pas catché.
Je veux un truc qui permet de fermer l'application lorsqu'il trouve des exceptions qui ne sont pas catché
ce bloc permet de récupérer toutes les exceptions
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 catch (...) { }
Je te met un exemple typique qui vient de mes cours de c++ avec plusieurs types d'exceptions: (CException est une classe propre d'exception codée a part)
Voila
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 int main () { try { TestExceptionsInMain(); return KNoExc; } catch (const CException & E) { cerr << "Erreur : " << E.GetLibelle() << '\n' << "Code d'erreur = " << E.GetCodErr() << '\n'; return E.GetCodErr(); } catch (const out_of_range & E) // levee par string::at() { cerr << "Exception runtime_error : " << E.what() << '\n'; return KExcStd; } */ /* catch (const runtime_error & E) { cerr << "Exception runtime_error : " << E.what() << '\n'; return KExcStd; } */ catch (const exception & E) { cerr << "Exception standard : " << E.what() << '\n'; return KExcStd; } /* catch (const unsigned & E) { cerr << "Exception unsigned : " << E << '\n'; return KExcStd; } catch (const int & E) { cerr << "Exception int : " << E << '\n'; return KExcStd; } */ catch (...) { cerr << "Exception inconnue\n"; return KExcInconnue; } } }
Merci bien jroman,
C'est bien ça mais j'ai trouvé que cette exception à partir d'une méthode d'une DLL et j'ai pas le code de cette DLL. Y a t il une solution pour fermer l'application lorsqu'on aura cette exception.
Merci
Je suis désolé mais je vois pas trop ce que tu attends, ou ce que tu ne comprends pas. Tu veux juste que ton programme se termine quand tu chope une exception qui n'est pas une que tu auras listé ? Tu écris dans le bloc catch(...) ton code. Je vois pas trop ce que tu ne comprends pas désolé.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager