Błędy i wyjątki w systemie typów rozszerzonych

Błędy mogą wystąpić w systemie ETS podczas inicjowania danych typu oraz podczas uzyskiwania dostępu do członka obiektu PSObject lub przy użyciu jednej z klas narzędzi, takich jak LanguagePrimitives.

Błędy środowiska uruchomieniowego

Z jednym wyjątkiem podczas rzutowania wszystkie wyjątki zgłaszane przez system ETS podczas wykonywania są albo wyjątkiem ExtendedTypeSystemException, albo wyjątkiem pochodzącym od klasy ExtendedTypeSystemException. Dzięki temu deweloperzy skryptów mogą wychwytować te wyjątki Trap przy użyciu instrukcji w skrypcie.

Błędy podczas uzyskiwania wartości członków

Wszystkie błędy występujące podczas uzyskiwania wartości członka systemu ETS (właściwości, metody lub właściwości sparametryzowanej) powodują wyjątek GetValueException lub GetValueInvocationException. Gdy system ETS rozpozna, że wystąpił błąd, zgłaszany jest wyjątek GetValueException. Gdy podstawowy element getter przywoływał element członkowski rozpoznaje, że wystąpił błąd, zgłaszany jest wyjątek GetValueInvocationException, który może lub nie uwzględniać wyjątku wewnętrznego, który spowodował błąd wywołania get.

Błędy podczas ustawiania wartości członków

Wszystkie błędy występujące podczas ustawiania wartości właściwości ETS powodują, że zgłaszany jest wyjątek SetValueException lub SetValueInvocationException. Gdy system ETS rozpozna, że wystąpił błąd, zgłaszany jest wyjątek SetValueException. Gdy podstawowy ustawiacz właściwości, do którego istnieje odwołanie, rozpoznaje, że wystąpił błąd, zgłaszany jest wyjątek SetValueInvocationException, który może lub nie uwzględniać wyjątku wewnętrznego, który spowodował błąd wywołania zestawu.

Błędy podczas wywołania metody

Wszystkie błędy występujące podczas wywołania metody ETS powodują wyjątek MethodException lub MethodInvocationException. Gdy system ETS rozpozna, że wystąpił błąd, zgłaszany jest wyjątek MethodException. Gdy metoda, do którego istnieje odwołanie, rozpoznaje, że wystąpił błąd, zgłaszany jest wyjątek MethodInvocationException, który może lub nie uwzględniać wyjątku wewnętrznego, który spowodował błąd wywołania.

Błędy rzutowania

Podczas próby nieprawidłowego rzutowania zgłaszany jest wyjątek PSInvalidCastException. Ponieważ ten wyjątek pochodzi od wyjątku System.InvalidCastException, nie można go bezpośrednio wyłapić ze skryptu. Należy pamiętać, że jednostka próbująca rzutować musi opakować element PSInvalidCastException w element PSRuntimeException, aby można było to zrobić za pomocą skryptów. Jeśli podjęto próbę ustawienia wartości właściwości PSPropertySet, PSMemberSet, PSMethodInfo lub członka readOnlyPSMemberInfoCollection'1, zgłaszany jest wyjątek NotSupportedException.

Typowe błędy środowiska uruchomieniowego

Wszystkie inne typowe błędy środowiska uruchomieniowego, które występują, są typu ExtendedTypeSystemException wyjątek bez dodatkowych typów wyjątków.

Błędy inicjowania

Podczas inicjowania mogą wystąpić błędy types.ps1xml . Zazwyczaj te błędy są wyświetlane po uruchomieniu środowiska uruchomieniowego programu PowerShell. Mogą być jednak również wyświetlane po załadowaniu modułu.