Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

demande explication TRY erreurs ??

8 réponses
Avatar
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
_______________________
.
.

8 réponses

Avatar
Jacquouille14
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
Avatar
LE TROLL
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" a écrit dans le message de
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


Avatar
Peekay
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 ...
Avatar
Jacquouille14
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
Avatar
LE TROLL
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" a écrit dans le message de
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 ...


Avatar
Patrice
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
Avatar
Patrice
>
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.
Avatar
LE TROLL
merci

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


"Patrice" <http://scribe-fr.blogspot.com/&gt; a écrit dans le message de
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.