cs_michm
Messages postés2Date d'inscriptionmercredi 22 août 2007StatutMembreDernière intervention 6 novembre 2007
-
6 nov. 2007 à 10:22
cs_Stephane33
Messages postés630Date d'inscriptionsamedi 15 février 2003StatutModérateurDernière intervention 9 octobre 2011
-
7 nov. 2007 à 10:32
Bonjour,
Je développe une appli en VB avec le compact FrameWork. Elle est destinée à des appareils mobiles sous Windows CE 4.2
L'appli tourne a peu prés comme il faut mais il y a un impératif: elle ne doit JAMAIS SE PLANTER, les utilisateurs devant avoir uniquement celle-ci (ils ne doivent pas en sortir, ni utiliser autre chose tel que Wordpad ou autre).
Mon problème est donc de gérer les exceptions autres que celles interceptables par Try.. Catch
Par exemple il m'arrive de voir passer StackOverflowException.
N'ayant aucune formation VB (j'ai quand meme réussi à developper quelque chose de potable avec 6 Foms enchainés) j'ai du mal à comprendre comment faire:
Je fais "Public
Shared
except
As
New
System.StackOverflowException"
dans ma première fenetre, mais aprés que dois-je faire???
Si possible soyez assez détaillé dans votre réponse.
Avec mes remerciements
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 6 nov. 2007 à 10:42
Ben déjà si tu vois cette exception, c'est que ton appli à un très gros bug.
Le mieux serait quand même de corriger le bug de l'appli avant de vouloir gerer l'execption.
PS : "... elle ne doit JAMAIS SE PLANTER...", en informatique, ça n'existe pas et ça n'existera jamais. Tu as toujours des impondérables qui font que ton appli peut un jour ou l'autre planter.
cs_michm
Messages postés2Date d'inscriptionmercredi 22 août 2007StatutMembreDernière intervention 6 novembre 2007 6 nov. 2007 à 11:01
Re,
Oui, je sais bien qu'il y aura toujours des plantages: c'est pour ça que je veux intercepter les anomalies éventuelles, quitte à afficher un beau meesage et à bloquer toute saisie jusqu'à prise en charge par l'informaticien. L'appli gére des données financières trés sensibles, c'est pour ça que les utilisateurs ne doivent pas pouvoir faire autre chose que de rester dans l'appli (quitte comme je l'ai dit à avoir une saisie bloquée et ne rien pouvoir faire).
Entre temps j'ai peut-etre trouve quelque chose: Si j'ai bien compris les exceptions remontent jusqu'à etre traitées, donc il suffit peut-etre que mon Main soit lui même de forme Try..Catch pour récupérer les exceptions.
Est-ce ça?
Avec mes remerciements
cs_Stephane33
Messages postés630Date d'inscriptionsamedi 15 février 2003StatutModérateurDernière intervention 9 octobre 20111 7 nov. 2007 à 10:32
Try/catch/finally/end try c'est la meilleure solution.
Peut-être traiter les exceptions dans une fontion propre. Regarde sur ce post un exemple de traitement d'erreur propre à SQLCe
Prinicipe
Try
Instruction susceptible de provoquer une erreur.
Catch
Traitement de l'erreur
Finally
Code toujours exécuté
End Try
Une erreur est générée, elle est normalement traitée dans catch, puis le code finally est executé
Attention à la portée de tes déclaration.
Une déclaration réalisée après try, a une portée limité dan cette boucle uniquement et pas en dehors