MarshalManagedExceptionMode Wyliczenie
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
To wyliczenie służy do określania, co należy zrobić, gdy zgłaszany jest wyjątek zarządzany, a wyjątek osiąga kod macierzysty.
public enum MarshalManagedExceptionMode
type MarshalManagedExceptionMode =
- Dziedziczenie
-
MarshalManagedExceptionMode
Pola
| Nazwa | Wartość | Opis |
|---|---|---|
| Default | 0 | Tryb domyślny. Jest to obecnie takie samo, jak ThrowObjectiveCException. |
| UnwindNativeCode | 1 | Pozwól, aby środowisko uruchomieniowe odwijało ramki natywne. Ta opcja jest dostępna tylko w przypadku korzystania ze środowiska uruchomieniowego MonoVM, a nie w przypadku korzystania ze środowiska uruchomieniowego CoreCLR. Środowisko uruchomieniowe CoreCLR nie obsługuje odwijania ramek natywnych i zamiast tego przerwanie procesu. Środowisko uruchomieniowe CoreCLR jest używane w aplikacji systemu macOS (nie Mac Catalyst) lub w przypadku korzystania z funkcji NativeAOT. Ta opcja nie jest zalecana, ponieważ prowadzi do niezdefiniowanego zachowania (aplikacja może ulec awarii, wyciek pamięci, zakleszczenia itp.), jeśli wyjątki zarządzane docierają do kodu natywnego (środowisko uruchomieniowe MonoVM nie wie, jak odwinąć ramki natywne, więc wszystko może się zdarzyć). Zalecaną opcją jest ThrowObjectiveCException. |
| ThrowObjectiveCException | 2 | Przekonwertuj wyjątek zarządzany na wyjątek Objective-C. Jest to zalecana opcja (a także zachowanie domyślne). |
| Abort | 3 | Przerwij, gdy wyjątek zarządzany osiągnie kod macierzysty. Może to być przydatne podczas debugowania, aby łatwo wykryć, kiedy wyjątki zarządzane docierają do kodu natywnego. |
| Disable | 4 | Wyłącz wyjątki zarządzane przez marshalling. Jest to rzeczywiście takie samo jak UnwindNativeCode, z tą różnicą, że żadne zdarzenia nie zostaną zgłoszone. |