Est il possible d'obtenir un numéro d'erreur comme Err.Number en VB6 ?
Est il possible aussi de vider les erreurs existantes svp ? du type Err.Clear
En fait, je faisais :
IF Exc.Message = "MonErreur" then Return
Mais comme j'ai passé mon appli sur un serveur configuré en anglais, le
résultat de Exc.Message est en anlais aussi...
Donc le numéro de l'erreur serait beaucoup mieux pour éviter ça.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Guillaume Davion
Tu as plusieurs choses pour ça :
- déjà en ce qui concerne le type de l'erreur : les exceptions sont des objets typés, et en fonction du type de l'exception on peut souvent déterminer quelle est cette erreur, ou bien au moins son contexte général, et réagir en fonction. Par exemple, une InvalidArgumentException vient toujours d'un problème de type argument invalide (c'est évident vu comme ça mais bon...), du genre passer un entier négatif alors que la méthode attends un entier positif.
- Ensuite le Err.Clear n'a plus lieu d'être avec le système des Try...Catch. Si tu récupéres l'exception dans un bloc Catch et que tu ne la relance pas ensuite, l'exception est étouffée, et donc il n'y pas besoin de faire Err.Clear. Si tu ne sais pas quel type d'exception attraper et que tu veux tout étouffer, tu fais un Catch Exception (par opposition à un Catch d'un type d'exception spécifique), et si tu ne la relance pas, tu auras effectivement étouffé ton erreur.
Tu as plusieurs choses pour ça :
- déjà en ce qui concerne le type de l'erreur : les exceptions sont
des objets typés, et en fonction du type de l'exception on peut
souvent déterminer quelle est cette erreur, ou bien au moins son
contexte général, et réagir en fonction. Par exemple, une
InvalidArgumentException vient toujours d'un problème de type argument
invalide (c'est évident vu comme ça mais bon...), du genre passer un
entier négatif alors que la méthode attends un entier positif.
- Ensuite le Err.Clear n'a plus lieu d'être avec le système des
Try...Catch. Si tu récupéres l'exception dans un bloc Catch et que tu
ne la relance pas ensuite, l'exception est étouffée, et donc il n'y
pas besoin de faire Err.Clear.
Si tu ne sais pas quel type d'exception attraper et que tu veux tout
étouffer, tu fais un Catch Exception (par opposition à un Catch d'un
type d'exception spécifique), et si tu ne la relance pas, tu auras
effectivement étouffé ton erreur.
- déjà en ce qui concerne le type de l'erreur : les exceptions sont des objets typés, et en fonction du type de l'exception on peut souvent déterminer quelle est cette erreur, ou bien au moins son contexte général, et réagir en fonction. Par exemple, une InvalidArgumentException vient toujours d'un problème de type argument invalide (c'est évident vu comme ça mais bon...), du genre passer un entier négatif alors que la méthode attends un entier positif.
- Ensuite le Err.Clear n'a plus lieu d'être avec le système des Try...Catch. Si tu récupéres l'exception dans un bloc Catch et que tu ne la relance pas ensuite, l'exception est étouffée, et donc il n'y pas besoin de faire Err.Clear. Si tu ne sais pas quel type d'exception attraper et que tu veux tout étouffer, tu fais un Catch Exception (par opposition à un Catch d'un type d'exception spécifique), et si tu ne la relance pas, tu auras effectivement étouffé ton erreur.