babe59
Messages postés189Date d'inscriptionvendredi 28 mai 2004StatutMembreDernière intervention27 novembre 2015
-
11 févr. 2008 à 11:54
babe59
Messages postés189Date d'inscriptionvendredi 28 mai 2004StatutMembreDernière intervention27 novembre 2015
-
12 févr. 2008 à 14:29
Bonjour,
Les try/catch ne fonctionnent pas lorsque j'execute mon programme sur un autre PC ou si le lance mon programme à partir de Visual Studio en faisant CTRL + F5 (mode Release).
Donc au lieu d'afficher une fenetre personnalisée, j'affiche la fenetre d'erreur Windows (jut + bouton continuer/ quitter)
babe59
Messages postés189Date d'inscriptionvendredi 28 mai 2004StatutMembreDernière intervention27 novembre 2015 12 févr. 2008 à 14:21
Je viens de trouver la réponse :
L'objet Application n'est pas "sensible" au try/catch.
En fait, l'objet Application possède un évènement ThreadException qui se déclenche quand justement une erreur non gérée survient.
--- Dans le main ----
Application.ThreadException +=
new
ThreadExceptionEventHandler(MyExceptionHandler);
Application.Run(
new
FrmMain(_userName, _superUser, _pkLogin));
--- ----
public
static
void MyExceptionHandler(
object sender,
ThreadExceptionEventArgs e)
{
babe59
Messages postés189Date d'inscriptionvendredi 28 mai 2004StatutMembreDernière intervention27 novembre 2015 12 févr. 2008 à 08:59
pas de type particulier.Dans l'exemple ci dessous, c'est lors d'un accès à une base de données. Mais c'et la même chose si à la place de l'insert SQL je mets simplement le code : throw
new
Exception(
"ee");
Miltiades
Messages postés233Date d'inscriptionvendredi 21 mars 2003StatutMembreDernière intervention25 octobre 2010 12 févr. 2008 à 10:22
c'est quoi les points de suspension entre le try et l'accolade?
si tu as reellement mis du code entre l'accolade et ton try, c'est normale que tu trappes jamais les exceptions...
sinon... c'est tres bizarre...
Nul ne devient grand par la guerre...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Miltiades
Messages postés233Date d'inscriptionvendredi 21 mars 2003StatutMembreDernière intervention25 octobre 2010 12 févr. 2008 à 10:55
je suis pas sur que ce soit le meme thread... a vérifier...
si tu veux faire un test, met un try catch juste autour de ton exception... voir si tu la recupere bien...
babe59
Messages postés189Date d'inscriptionvendredi 28 mai 2004StatutMembreDernière intervention27 novembre 2015 12 févr. 2008 à 11:45
Militades : si je mets un try/catch au niveau de l'exception (dans la classe correspondante) et non pas dans program.cs sa fonctionne. Par contre pour le thread, pourquoi en execution classique (sans CTRL F5) sa fonctionne ?
Nikoui : je vois où tu veux en venir, mais non cela ne change rien...
Miltiades
Messages postés233Date d'inscriptionvendredi 21 mars 2003StatutMembreDernière intervention25 octobre 2010 12 févr. 2008 à 13:28
A ma connaissance, les exception sont faites pour etre traitée au plus haut, c'est a dire le plus près possible de celui qui lance l'exception, donc theoriquement c'est pas genant que tu puisses pas intercepter une erreur au niveau de l'application... quand a savoir pourquoi ca marche en debug et pas sans le debug... je sais pas d'ou ca vient ^^
babe59
Messages postés189Date d'inscriptionvendredi 28 mai 2004StatutMembreDernière intervention27 novembre 2015 12 févr. 2008 à 14:29
Je suis d'accord avec toi mais mettre des try/catch partout, c'est pas génial pour la lisibilité et je suis aussi d'accord avec http://www.c2i.fr/code.aspx?IDCode=577 (il y aura toujours une erreur qui nous echappera...)