Utilisation de gestionnaires filtrés par l'utilisateurUsing User-Filtered Exception Handlers

Visual Basic prend actuellement en charge les exceptions filtrées par l’utilisateur.Currently, Visual Basic supports user-filtered exceptions. Les gestionnaires d’exceptions filtrés par l’utilisateur interceptent et gèrent les exceptions selon des critères que vous définissez pour l’exception.User-filtered exception handlers catch and handle exceptions based on requirements you define for the exception. Ces gestionnaires utilisent l’instruction Catch avec le mot clé When.These handlers use the Catch statement with the When keyword.

Cette technique est utile lorsqu’un objet d’exception particulier correspond à plusieurs erreurs.This technique is useful when a particular exception object corresponds to multiple errors. Dans ce cas, l’objet possède généralement une propriété qui contient le code d’erreur associé à l’erreur.In this case, the object typically has a property that contains the specific error code associated with the error. Vous pouvez utiliser la propriété de code d’erreur dans l’expression pour sélectionner uniquement l’erreur particulière que vous souhaitez gérer dans cette clause Catch.You can use the error code property in the expression to select only the particular error you want to handle in that Catch clause.

L’exemple Visual Basic suivant illustre l’instruction Catch/When.The following Visual Basic example illustrates the Catch/When statement.

Try  
    'Try statements.  
    Catch When Err = VBErr_ClassLoadException
    'Catch statements.
End Try  

L’expression de la clause filtrée par l’utilisateur n’est pas limitée.The expression of the user-filtered clause is not restricted in any way. Si une exception se produit pendant l’exécution de l’expression filtrée par l’utilisateur, cette exception est ignorée et l’expression filtrée est considérée comme ayant la valeur False.If an exception occurs during execution of the user-filtered expression, that exception is discarded and the filter expression is considered to have evaluated to false. Dans ce cas, le common language runtime continue la recherche d’un gestionnaire pour l’exception actuelle.In this case, the common language runtime continues the search for a handler for the current exception.

Combinaison de l’exception spécifique et des clauses filtrées par l’utilisateurCombining the Specific Exception and the User-Filtered Clauses

Une instruction catch peut contenir à la fois l’exception spécifique et les clauses filtrées par l’utilisateur.A catch statement can contain both the specific exception and the user-filtered clauses. Le runtime teste tout d’abord l’exception spécifique.The runtime tests the specific exception first. Si l’exception spécifique réussit, le runtime exécute le filtre de l’utilisateur.If the specific exception succeeds, the runtime executes the user filter. Le filtre générique peut contenir une référence à la variable déclarée dans le filtre de la classe.The generic filter can contain a reference to the variable declared in the class filter. Notez que l’ordre des deux clauses de filtre ne peut pas être inversé.Note that the order of the two filter clauses cannot be reversed.

L’exemple Visual Basic suivant illustre l’exception spécifique ClassLoadException dans l’instruction Catch ainsi que la clause filtrée par l’utilisateur à l’aide du mot clé When.The following Visual Basic example shows the specific exception ClassLoadException in the Catch statement as well as the user-filtered clause using the When keyword.

Try  
    'Try statements.
    Catch cle As ClassLoadException When cle.IsRecoverable()  
    'Catch statements.
End Try  

Voir aussiSee also