Partager via


Erreurs et exceptions dans le système de type étendu

Les erreurs peuvent se produire dans ETS lors de l’initialisation des données de type et lors de l’accès à un membre d’un objet PSObject ou à l’aide de l’une des classes utilitaires telles que LanguagePrimitives.

Erreurs d’exécution

Avec une exception, lors de la conversion, toutes les exceptions levées à partir d’ETS pendant l’exécution sont soit une exception ExtendedTypeSystemException, soit une exception dérivée de la classe ExtendedTypeSystemException. Cela permet aux développeurs de scripts de intercepter ces exceptions à l’aide de l’instruction trap dans leur script.

Erreurs lors de l’obtention des valeurs de membre

Toutes les erreurs qui se produisent lors de l’obtention de la valeur d’un membre ETS (propriété, méthode ou paramétrable) entraînent la levée d’une exception ou GetValueInvocationException exception. Quand ETS reconnaît qu’une erreur s’est produite GetValueException exception est levée. Lorsque le getter sous-jacent d’un membre référencé reconnaît qu’une erreur s’est produite, une GetValueInvocationException exception est levée qui peut ou non inclure l’exception interne qui a provoqué l’erreur d’appel d’obtention.

Erreurs lors de la définition des valeurs de membre

Toutes les erreurs qui se produisent lors de la définition de la valeur d’une propriété ETS provoquent la levée d’une exception SetValueEx ception ou SetValueInvocationException exception. Quand ETS reconnaît qu’une erreur s’est produite SetValueException exception est levée. Lorsque le setter sous-jacent d’une propriété référencée reconnaît qu’une erreur s’est produite, une SetValueInvocationException exception est levée, ce qui peut ou non inclure l’exception interne qui a provoqué l’erreur d’appel de jeu.

Erreurs lors de l’appel d’une méthode

Toutes les erreurs qui se produisent lors de l’appel d’une méthode ETS provoquent la levée d’une exception MethodException ou MethodInvocationException. Quand ETS reconnaît qu’une erreur s’est produite MethodException exception est levée. Lorsque la méthode référencée reconnaît qu’une erreur s’est produite, une exception MethodInvocationException est levée qui peut ou non inclure l’exception interne qui a provoqué l’erreur d’appel.

Erreurs de cast

Lorsqu’un cast non valide est tenté, une PSInvalidCastException est levée. Étant donné que cette exception dérive de System.InvalidCastException, elle n’est pas en mesure d’être directement interceptée à partir du script. N’oubliez pas que l’entité qui tente d’effectuer un cast doit encapsuler PSInvalidCastException dans une PSRuntimeException pour qu’elle soit interceptable par les scripts. Si une tentative est effectuée pour définir la valeur d’un PSPropertySet, PSMemberSet, PSMethodInfo, ou un membre du ReadOnlyPSMemberInfoCollection'1, un NotSupportedException est levée.

Erreurs courantes du runtime

Toutes les autres erreurs d’exécution courantes qui se produisent sont de type ExtendedTypeSystemException exception sans types d’exception spécifiques supplémentaires.

Erreurs d’initialisation

Des erreurs peuvent se produire lors de l’initialisation de types.ps1xml. En règle générale, ces erreurs s’affichent au démarrage du runtime PowerShell. Toutefois, ils peuvent également être affichés lorsqu’un module est chargé.