demande explication TRY erreurs ??

Le
LE TROLL
Bonjour,

Je ne comprends pas tout dans la gestion d'erreurs, si quelqu'un peut
m'expliquer :

Voici :

Try
Routine pouvant provoquer une erreur <> 0
Catch ex As Exception
traitement ici si une erreur <> 0 MAIS laquelle ???
Exit Try ' ÇA VA OU ???
Catch ex1 As Exception
traitement si seconde erreur <> 0 ??? LAQUELLE ???
Finally
???
End Try

Par exemple, comment gérer l'erreur 5 puis une erreur indéfinie ?


Merci, cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jacquouille14
Le #20494601
LE TROLL a écrit :
Bonjour,

Je ne comprends pas tout dans la gestion d'erreurs, si quelqu'un peut
m'expliquer :

Voici :

Try
Routine pouvant provoquer une erreur <> 0
Catch ex As Exception
traitement ici si une erreur <> 0 MAIS laquelle ???
Exit Try ' ÇA VA OU ???



Je dirais après le end try, est inutile s'il n'y a pas de finally

Catch ex1 As Exception
traitement si seconde erreur <> 0 ??? LAQUELLE ???
Finally



Le finally est toujours exécuté s'il y a du code

End Try

Par exemple, comment gérer l'erreur 5 puis une erreur indéfinie ?




Bonjour,
La récupération d'erreurs ne fonctionne pas ou fonctionne mal s'il
s'agit d'erreurs "extérieures" au prog telle que "out of memory"
comme j'ai pu le constater. Sinon il est possible de provoquer une
erreur pour tester le prog ou de mettre un catch pour récupérer
n'importe quelle erreur ou de récupérer une erreur précise.
Je n'ai plus la syntaxe mais elle se trouve dans l'aide.


--
Jacques dit Jacquouille
LE TROLL
Le #20495141
Bonsoir, merci, bon, ben je vais tester alors, plus c'est moderne et plus
c'est complexe...

Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"Jacquouille14" news:4af3073b$0$22903$
LE TROLL a écrit :
Bonjour,

Je ne comprends pas tout dans la gestion d'erreurs, si quelqu'un peut
m'expliquer :

Voici :

Try
Routine pouvant provoquer une erreur <> 0
Catch ex As Exception
traitement ici si une erreur <> 0 MAIS laquelle ???
Exit Try ' ÇA VA OU ???



Je dirais après le end try, est inutile s'il n'y a pas de finally

Catch ex1 As Exception
traitement si seconde erreur <> 0 ??? LAQUELLE ???
Finally



Le finally est toujours exécuté s'il y a du code

End Try

Par exemple, comment gérer l'erreur 5 puis une erreur indéfinie ?




Bonjour,
La récupération d'erreurs ne fonctionne pas ou fonctionne mal s'il
s'agit d'erreurs "extérieures" au prog telle que "out of memory"
comme j'ai pu le constater. Sinon il est possible de provoquer une
erreur pour tester le prog ou de mettre un catch pour récupérer
n'importe quelle erreur ou de récupérer une erreur précise.
Je n'ai plus la syntaxe mais elle se trouve dans l'aide.


--
Jacques dit Jacquouille


Peekay
Le #20499091
Les différents catch se font sur différentes exceptions.
Dans l'exemple de Laserre sur
http://plasserre.developpez.com/cours/vb-net/?page=langage-vb7#LV-AA, tu
as :
Try

sr= New StreamerReader (NomFichier)

Catch ex As DirectoryNotFoundException

MsgBox("Répertoire invalide")

Catch ex As FileNotFoundException

MsgBox("Fichier invalide")

Catch ex As Exception

MsgBox(ex.Message)

End Try

Tu as plein d'exceptions possibles, mais dans l'aide de chaque fonction
de chaque objet tu trouveras les exceptions qui sont susceptibles d'être
générées ...
Jacquouille14
Le #20500911
Peekay a écrit :
Les différents catch se font sur différentes exceptions.
Dans l'exemple de Laserre sur
http://plasserre.developpez.com/cours/vb-net/?page=langage-vb7#LV-AA, tu
as :
Try

sr= New StreamerReader (NomFichier)

Catch ex As DirectoryNotFoundException

MsgBox("Répertoire invalide")

Catch ex As FileNotFoundException

MsgBox("Fichier invalide")

Catch ex As Exception

MsgBox(ex.Message)

End Try

Tu as plein d'exceptions possibles, mais dans l'aide de chaque fonction
de chaque objet tu trouveras les exceptions qui sont susceptibles d'être
générées ...


Bonjour,
Très intéressante cette page, je vais y prendre 2 ou 3 idées.
Par contre, vers la fin, la méthode de vérifier la saisie d'un chiffre
n'est pas excellente, le mieux étant d'empêcher la saisie d'un
caractère n'étant pas un chiffre. Cela se fait en gérant la méthode
KeyDown, e.keyvalue et e.SuppressKeyPress

--
Jacques dit Jacquouille
LE TROLL
Le #20501071
Bonjour,

Merci, en effet c'est intéressant, mais a priori, comme il faut
préalablement déclarer machin_IO c'est davantage destiné au flux de
fichiers, dommage qu'on ne puisse taper le numéro de l'erreur, genre catch
err.number = 10... C'est un peut délicat de taper le libellé de l'erreur en
anglais, il faut se souvenir exactement des mots et sans fautes...

Donc il semblerait qu'il suffise de mettre un seul catch ex, et de
tester dedans au select cas err.number... A tester...

A part ça, à ton avis, à la sortie du Try, l'erreur se remet à 0 tonte
seule, ou faut-il la remettre à 0 (on error goto 0) ou (on error resume
next) ???
Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.



"Peekay" news:4af3f10b$0$2757$
Les différents catch se font sur différentes exceptions.
Dans l'exemple de Laserre sur
http://plasserre.developpez.com/cours/vb-net/?page=langage-vb7#LV-AA, tu
as :
Try

sr= New StreamerReader (NomFichier)

Catch ex As DirectoryNotFoundException

MsgBox("Répertoire invalide")

Catch ex As FileNotFoundException

MsgBox("Fichier invalide")

Catch ex As Exception

MsgBox(ex.Message)

End Try

Tu as plein d'exceptions possibles, mais dans l'aide de chaque fonction de
chaque objet tu trouveras les exceptions qui sont susceptibles d'être
générées ...


Patrice
Le #20503371
Bonjour

Merci, en effet c'est intéressant, mais a priori, comme il faut
préalablement déclarer machin_IO c'est davantage destiné au flux de
fichiers



Non, c'est un mécanisme général. Peekay a mis un try/catch a titre d'exemple
de code qui peut planter

, dommage qu'on ne puisse taper le numéro de l'erreur, genre catch
err.number = 10... C'est un peut délicat de taper le libellé de l'erreur
en anglais, il faut se souvenir exactement des mots et sans fautes...



On ne patpe le message. L'idée est que chaque erreur à un type que la
récupération se base sur le type de l'erreur et non pas sur un n° ou un
message.

Donc il semblerait qu'il suffise de mettre un seul catch ex, et de
tester dedans au select cas err.number... A tester...



Cela prend toutes les erreurs de tous les types. Sinon le code montré par
Peekey utilise plusieurs clauses catch ce qui permet de traiter les erreurs
en fonction de leur type (cf la doc pour qq précisions sur ce mécanisme).

A part ça, à ton avis, à la sortie du Try, l'erreur se remet à 0 tonte
seule, ou faut-il la remettre à 0 (on error goto 0) ou (on error resume
next) ???


Il n'y a pas de statut globale, l'erreur est récupérée dans la variable qui
quit la clause Catch et cette variable suit les mêmes règles de portées que
n'importe quelle autyre variable.

Si pas déjà faite je suggère d'étudier :
http://msdn.microsoft.com/fr-fr/library/2w8f0bss.aspx qui présente en détail
les exceptions.

Eventuellement expliquer en détail précisemment l'erreur à traiter et
comment y réagir (l'idée de base est aussi d'éviter de faire survenir des
erreurs pour y réagir (par exemple tester l'existence d'un fichier plutôt
que d'essayer d'ouvrir un fichier qui n'existe pas). Il est également
possible d'installer un gestionnaire global (pour tracer les erreurs et
arrêter proprement l'application) plutôt que de mettre des try/catch partout
dans le code etc...)


--
Patrice
Patrice
Le #20503481
>
Non, c'est un mécanisme général. Peekay a mis un try/catch a titre
d'exemple de code qui peut planter



Je voulais dire un stream à titre d'exemple de code qui peut planter mais
cela peut être absolument n'importe quel code.
LE TROLL
Le #20503581
merci

--
Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"Patrice" news:
>
Non, c'est un mécanisme général. Peekay a mis un try/catch a titre
d'exemple de code qui peut planter



Je voulais dire un stream à titre d'exemple de code qui peut planter mais
cela peut être absolument n'importe quel code.





Publicité
Poster une réponse
Anonyme