Fel och undantag i det utökade typsystemet

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

Körningsfel

Med ett undantag är alla undantag som utlösts från ETS under körning antingen ett ExtendedTypeSystemException-undantag eller ett undantag som härletts från klassen ExtendedTypeSystemException. Detta gör att skriptutvecklare kan fånga dessa undantag med hjälp Trap av -instruktionen i skriptet.

Fel vid hämta medlemsvärden

Alla fel som inträffar när du hämtar värdet för en ETS-medlem (egenskap, metod eller parametriserad egenskap) orsakar ett GetValueException- eller GetValueInvocationException-undantag. När ETS identifierar att ett fel har uppstått uppstår ett GetValueException-undantag. När den underliggande geter för en refererad medlem identifierar att ett fel har uppstått, uppstår ett GetValueInvocationException-undantag som kan eller inte kan innehålla det inre undantaget som orsakade get-anropsfelet.

Fel vid inställning av medlemsvärden

Alla fel som inträffar när du anger värdet för en ETS-egenskap orsakar ett setValueException- eller SetValueInvocationException-undantag. När ETS identifierar att ett fel har uppstått uppstår ett SetValueException-undantag. När den underliggande set-egenskapen för en refererad egenskap identifierar att ett fel har uppstått, uppstår ett SetValueInvocationException-undantag som kan innehålla det inre undantaget som orsakade anropsfelet.

Fel vid anrop av en metod

Alla fel som inträffar vid anrop av en ETS-metod orsakar att ett MethodException- eller MethodInvocationException-undantag inträffar. När ETS identifierar att ett fel har uppstått uppstår ett MethodException-undantag. När den refererade metoden identifierar att ett fel har uppstått, uppstår ett MethodInvocationException-undantag som kan innehålla det inre undantaget som orsakade anropsfelet.

Avformningsfel

När ett ogiltigt försök görs, kommer en PSInvalidCastException att utge sig för att göra det. Eftersom det här undantaget härleds från System.InvalidCastException kan det inte fångas direkt från skriptet. Tänk på att entiteten som försöker utföra avtrycken måste omsluta PSInvalidCastException i en PSRuntimeException för att detta ska kunna fångas upp av skript. Om ett försök görs att ange värdet för en PSPropertySet, PSMemberSet, PSMethodInfo eller en medlem i ReadOnlyPSMemberInfoCollection'1, så kommer en NotSupportedException att utlöss.

Vanliga körningsfel

Alla andra vanliga körningsfel som inträffar är av typen ExtendedTypeSystemException-undantag utan ytterligare specifika undantagstyper.

Initieringsfel

Fel kan uppstå vid initiering av types.ps1xml . De här felen visas vanligtvis när PowerShell-körningen startar. De kan dock också visas när en modul läses in.