Chyby a výjimky v rozšířeném systému typů

K chybám může docházet v ETS během inicializace dat typu a při přístupu ke členu objektu PSObject nebo při použití jedné z tříd nástrojů, jako je například LanguagePrimitives.

Chyby za běhu

S jednou výjimkou jsou při přetypování všechny výjimky vyvolané z ETS za běhu buď výjimka ExtendedTypeSystemException, nebo výjimka odvozená z třídy ExtendedTypeSystemException. Vývojáři skriptů tak mohou tyto výjimky zachycovat Trap pomocí příkazu ve svém skriptu.

Chyby při získávání hodnot členů

Všechny chyby, ke kterým dochází při získávání hodnoty člena ETS (vlastnost, metoda nebo parametrizovaná vlastnost), způsobí vyvolání výjimky GetValueException nebo GetValueInvocationException. Když ETS rozpozná, že došlo k chybě, je vyvolána výjimka GetValueException. Když základní metoda getter odkazovaného členu rozpozná, že došlo k chybě, vyvolá se výjimka GetValueInvocationException, která může nebo nemusí obsahovat vnitřní výjimku, která způsobila chybu vyvolání get.

Chyby při nastavování hodnot členů

Všechny chyby, ke kterým dochází při nastavování hodnoty vlastnosti ETS, způsobí vyvolání výjimky SetValueException nebo SetValueInvocationException. Když ETS rozpozná, že došlo k chybě, je vyvolána výjimka SetValueException. Když základní metoda setter odkazované vlastnosti rozpozná, že došlo k chybě, vyvolá se výjimka SetValueInvocationException, která může nebo nemusí obsahovat vnitřní výjimku, která způsobila chybu volání sady.

Chyby při volání metody

Všechny chyby, ke kterým dochází při volání metody ETS, způsobí vyvolání výjimky MethodException nebo MethodInvocationException. Když ETS rozpozná, že došlo k chybě, vyvolá se výjimka MethodException. Když odkazovaná metoda rozpozná, že došlo k chybě, vyvolá se výjimka MethodInvocationException, která může nebo nemusí obsahovat vnitřní výjimku, která způsobila chybu vyvolání.

Chyby přetypování

Při pokusu o neplatné přetypování je vyvolána výjimka PSInvalidCastException. Vzhledem k tomu, že tato výjimka je odvozena z výjimky System.InvalidCastException, nelze ji přímo odvodit ze skriptu. Uvědomte si, že entita, která se pokouší přetypování, by potřebovala zabalit výjimku PSInvalidCastException do psRuntimeException, aby to bylo možné zachycovat pomocí skriptů. Pokud je proveden pokus o nastavení hodnoty PSPropertySet, PSMemberSet, PSMethodInfo nebo člena ReadOnlyPSMemberInfoCollection'1, je vyvolána výjimka NotSupportedException.

Běžné chyby modulu runtime

Všechny ostatní běžné chyby modulu runtime, ke kterým dochází, jsou typu výjimka ExtendedTypeSystemException bez dalších konkrétních typů výjimek.

Chyby inicializace

Při inicializaci může dojít k types.ps1xml chybám. Tyto chyby se obvykle zobrazí při spuštění modulu runtime PowerShellu. Mohou se ale zobrazit také při načtení modulu.