Finally |
Final |
---|---|
Visual Basic .NET (VB .NET) |
Syntaxe
Try [ tryStatements ] [ Exit Try ] [ Catch [ exception [ As type ] ] [ When expression ] [ catchStatements ] [ Exit Try ] ] [ Catch ... ] [ Finally [ finallyStatements ] ] End Try |
Paramètres
Nom | Description |
---|---|
tryStatements | Ce paramètre permet d'indiquer des instructions où une erreur peut se produire. Peut être une déclaration composée. |
Catch | Ce paramètre permet d'indiquer des blocs de capture multiples autorisés. Si une exception se produit lors du traitement du bloc Try, chaque instruction Catch est examinée dans l'ordre textuel pour déterminer si elle gère l'exception, l'exception représentant l'exception ayant été levée. |
exception | Ce paramètre permet d'indiquer tout nom de variable. La valeur initiale de l'exception est la valeur de l'erreur levée. Utilisé avec Catch pour spécifier l'erreur détectée. Si elle est omise, l'instruction Catch intercepte toute exception. |
type | Ce paramètre permet d'indiquer le type de filtre de classe. Si la valeur de l'exception est du type spécifié par type ou d'un type dérivé, l'identificateur devient lié à l'objet exception. |
When | Ce paramètre permet d'indiquer une instruction Catch avec une clause When intercepte les exceptions uniquement lorsque l'expression est évaluée à True. Une clause When n'est appliquée qu'après avoir vérifié le type de l'exception, et l'expression peut faire référence à l'identifiant représentant l'exception. |
expression | Ce paramètre doit être implicitement convertible en booléen. Toute expression décrivant un filtre générique. Généralement utilisé pour filtrer par numéro d'erreur. Utilisé avec le mot-clef When pour spécifier les circonstances dans lesquelles l'erreur est détectée. |
catchStatements | Ce paramètre permet d'indiquer les instructions pour gérer les erreurs se produisant dans le bloc Try associé. Peut être une déclaration composée. |
Exit Try | Ce paramètre permet d'indiquer un mot-clef sortant de la structure Try...Catch...Finally. L'exécution reprend avec le code suivant immédiatement l'instruction End Try. L'instruction Final sera toujours exécutée. Non autorisé dans les blocs Finally. |
Finally | Ce paramètre permet d'indiquer qu'un bloc Final est toujours exécuté lorsque l'exécution quitte une partie de l'instruction Try...Catch. |
finallyStatements | Ce paramètre permet d'indiquer les instructions étant exécutées après que tous les autres traitements d'erreur se soient produits. |
End Try | Ce paramètre permet de mettre fin à la structure Try...Catch...Finally. |
Description
Ce mot réservé permet de fournir un moyen de gérer certaines ou toutes les erreurs possibles pouvant se produire dans un bloc de code donné, tout en exécutant le code.
Remarques
- Si vous avez une ou plusieurs instructions devant s'exécuter avant de quitter la structure Try, utilisez un bloc Final. Le contrôle passe au bloc Final juste avant de sortir de la structure Try...Catch. Cela est vrai même si une exception se produit n'importe où dans la structure Try.
- Un bloc Final est utile pour exécuter n'importe quel code qui doit s'exécuter même s'il y a une exception. Le contrôle est passé au bloc Final indépendamment de la façon dont le bloc Try...Catch se termine.
- Le code d'un bloc Final s'exécute même si votre code rencontre une instruction Return dans un bloc Try ou Catch. Le contrôle ne passe pas d'un bloc Try ou Catch au bloc Final correspondant dans les cas suivants : une instruction End est rencontrée dans le bloc Try ou Catch ou une StackOverflowException est levée dans le bloc Try ou Catch.
- Il n'est pas valide de transférer explicitement l'exécution dans un bloc Final. Le transfert de l'exécution à partir d'un bloc Final n'est pas valide, sauf via une exception.
- Si une instruction Try ne contient pas au moins un bloc Catch, elle doit contenir un bloc Final.
- Si vous n'avez pas à intercepter d'exceptions spécifiques, l'instruction Using se comporte comme un bloc Try...Finally et garantit l'élimination des ressources, quelle que soit la manière dont vous quittez le bloc. Cela est vrai même avec une exception non gérée.
Dernière mise à jour : Mardi, le 24 Août 2021