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

K chybám může dojít v ETS během inicializace typových dat a při přístupu k členu PSObject objektu nebo pomocí některé z utility třídy, jako je LanguagePrimitives.

Chyby za běhu

S jednou výjimkou při přetypování jsou všechny výjimky vyvolané z ETS během modulu runtime buď ExtendedTypeSystemException výjimka, nebo výjimka odvozená z ExtendedTypeSystemException třídy. Vývojáři skriptů tak mohou tyto výjimky schytávat pomocí příkazu trap 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ání hodnoty členu ETS (vlastnost, metoda nebo parametrizovaná vlastnost) způsobují vyvolání GetValueException nebo GetValueInvocationException výjimku. Když ETS zjistí, že došlo k chybě GetValueException je vyvolána výjimka. Když základní getter odkazovaného členu rozpozná, že došlo k chybě, je vyvolána výjimka GetValueInvocationException, která může nebo nemusí zahrnovat vnitřní výjimku, která způsobila chybu vyvolání.

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

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

Chyby při vyvolání metody

Všechny chyby, ke kterým dochází při vyvolání metody ETS, způsobují výjimku MethodException nebo MethodInvocationException výjimku. Když ETS zjistí, že došlo k chybě MethodException je vyvolán výjimka. Když odkazovaná metoda rozpozná, že došlo k chybě, je vyvolána výjimka MethodInvocationException, která může nebo nemusí zahrnovat 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 PSInvalidCastException. Vzhledem k tomu, že tato výjimka je odvozena z System.InvalidCastException, nemůže být přímo zachycen ze skriptu. Mějte na paměti, že entita, která se pokouší přetypovat, musí zabalit PSInvalidCastException v PSRuntimeException, aby to bylo možné zachytit pomocí skriptů. Pokud se pokusí nastavit hodnotu PSPropertySet, PSMemberSet, PSMethodInfonebo člen ReadOnlyPSMemberInfoCollection'1, vyvolá se NotSupportedException.

Běžné chyby modulu runtime

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

Chyby inicializace

K chybám může dojít při inicializaci types.ps1xml. Tyto chyby se obvykle zobrazují při spuštění modulu runtime PowerShellu. Můžete je ale také zobrazit při načtení modulu.