MarshalManagedExceptionMode Enumeration

Definition

Diese Enumeration wird verwendet, um anzugeben, was zu tun ist, wenn eine verwaltete Ausnahme ausgelöst wird, und diese Ausnahme erreicht systemeigenen Code.

public enum MarshalManagedExceptionMode
type MarshalManagedExceptionMode = 
Vererbung
MarshalManagedExceptionMode

Felder

Name Wert Beschreibung
Default 0

Der Standardmodus. Dies ist derzeit identisch mit ThrowObjectiveCException.

UnwindNativeCode 1

Lassen Sie die Laufzeit native Frames abwickeln.

Diese Option ist nur verfügbar, wenn Sie die MonoVM-Laufzeit verwenden, nicht bei Verwendung der CoreCLR-Laufzeit. Die CoreCLR-Laufzeit unterstützt nicht das Abwickeln nativer Frames und bricht stattdessen den Prozess ab. Die CoreCLR-Laufzeit wird in einer macOS-App (nicht mac Catalyst) oder bei Verwendung von NativeAOT verwendet.

Diese Option wird nicht empfohlen, da sie zu einem nicht definierten Verhalten führt (die App kann abstürzen, Speicherleck, Deadlock usw.) wenn verwaltete Ausnahmen systemeigenen Code erreichen (die MonoVM-Laufzeit weiß nicht, wie systemeigene Frames abgewickelt werden, sodass alles passieren kann). Die empfohlene Option ist ThrowObjectiveCException.

ThrowObjectiveCException 2

Konvertieren Sie die verwaltete Ausnahme in eine Objective-C Ausnahme. Dies ist die empfohlene Option (und auch das Standardverhalten).

Abort 3

Abbruch, wenn eine verwaltete Ausnahme systemeigenen Code erreicht. Dies kann beim Debuggen hilfreich sein, um einfach zu erkennen, wann verwaltete Ausnahmen systemeigenen Code erreichen.

Disable 4

Deaktivieren Sie verwaltete Ausnahmen für das Marshalling. Dies ist effektiv identisch mit UnwindNativeCodeder Ausnahme, dass keine Ereignisse ausgelöst werden.

Gilt für: