Fel och undantag i systemet för utökad typ

Fel kan inträffa i ETS under initieringen av typdata och vid åtkomst till en medlem i ett PSObject--objekt eller med hjälp av någon av verktygsklasserna, till exempel LanguagePrimitives.

Körningsfel

Med ett undantag är alla undantag som utlöses från ETS under körning antingen ett ExtendedTypeSystemException- undantag eller ett undantag som härleds från klassen ExtendedTypeSystemException. På så sätt kan skriptutvecklare fånga dessa undantag med hjälp av instruktionen trap i skriptet.

Fel vid hämtar medlemsvärden

Alla fel som uppstår när du hämtar värdet för en ETS-medlem (egenskap, metod eller parameteriserad egenskap) orsakar ett GetValueException- eller GetValueInvocationException undantag som genereras. När ETS identifierar att ett fel uppstod utlöses ett GetValueException undantag. När den underliggande gettern för en refererad medlem upptäcker att ett fel har inträffat utlöses ett GetValueInvocationException undantag som kan innehålla det inre undantaget som orsakade get-anropsfelet.

Fel vid inställning av medlemsvärden

Alla fel som uppstår när värdet för en ETS-egenskap anges orsakar ett SetValueException- eller SetValueInvocationException undantagsfel som genereras. När ETS identifierar att ett fel uppstod utlöses ett SetValueException undantag. När den underliggande settern för en refererad egenskap identifierar att ett fel har inträffat utlöses ett SetValueInvocationException undantag som kan innehålla det inre undantaget som orsakade det angivna anropsfelet.

Fel vid anrop av en metod

Alla fel som uppstår när du anropar en ETS-metod orsakar ett MethodException- eller MethodInvocationException undantag som genereras. När ETS identifierar att ett fel uppstod utlöses ett MethodException undantag. När den refererade metoden identifierar att ett fel uppstod utlöses ett MethodInvocationException undantag som kan innehålla det inre undantaget som orsakade anropsfelet.

Gjutningsfel

När ett ogiltigt cast-försök görs utlöses en PSInvalidCastException-. Eftersom det här undantaget härleds från System.InvalidCastExceptionkan det inte fångas direkt från skriptet. Tänk på att entiteten som försöker omvandlas skulle behöva omsluta PSInvalidCastException i en PSRuntimeException- för att detta ska kunna fångas av skript. Om ett försök görs att ange värdet för en PSPropertySet, PSMemberSet, PSMethodInfoeller en medlem i ReadOnlyPSMemberInfoCollection'1genereras en NotSupportedException-.

Vanliga körningsfel

Andra vanliga körningsfel som inträffar är av typen ExtendedTypeSystemException undantag utan några ytterligare specifika undantagstyper.

Initieringsfel

Fel kan uppstå när types.ps1xmlinitieras. Normalt visas dessa fel när PowerShell-körningen startar. De kan dock också visas när en modul läses in.