MarshalManagedExceptionMode Énumération

Définition

Cette énumération est utilisée pour spécifier ce qu’il faut faire lorsqu’une exception managée est levée et que cette exception atteint le code natif.

public enum MarshalManagedExceptionMode
type MarshalManagedExceptionMode = 
Héritage
MarshalManagedExceptionMode

Champs

Nom Valeur Description
Default 0

Mode par défaut. C’est actuellement le même que ThrowObjectiveCException.

UnwindNativeCode 1

Laissez le runtime dissocier les images natives.

Cette option est disponible uniquement lors de l’utilisation du runtime MonoVM, et non lors de l’utilisation du runtime CoreCLR. Le runtime CoreCLR ne prend pas en charge le déroulement des trames natives et abandonne simplement le processus à la place. Le runtime CoreCLR est utilisé dans une application macOS (et non Mac Catalyst) ou lors de l’utilisation de NativeAOT.

Cette option n’est pas recommandée, car elle entraîne un comportement non défini (l’application peut se bloquer, fuiter de mémoire, blocage, etc.) si les exceptions managées atteignent du code natif (le runtime MonoVM ne sait pas comment décompresser les images natives, de sorte que tout peut se produire). L’option recommandée est ThrowObjectiveCException.

ThrowObjectiveCException 2

Convertissez l’exception managée en exception Objective-C. Il s’agit de l’option recommandée (et également du comportement par défaut).

Abort 3

Abandonner lorsqu’une exception managée atteint le code natif. Cela peut être utile pendant le débogage pour détecter facilement quand des exceptions managées atteignent du code natif.

Disable 4

Désactivez le marshaling des exceptions managées. Cela est effectivement le même que UnwindNativeCode, sauf qu’aucun événement ne sera déclenché.

S’applique à