MarshalManagedExceptionMode Énumération
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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é. |