MarshalManagedExceptionMode Enumerazione

Definizione

Questa enumerazione viene usata per specificare le operazioni da eseguire quando viene generata un'eccezione gestita e tale eccezione raggiunge il codice nativo.

public enum MarshalManagedExceptionMode
type MarshalManagedExceptionMode = 
Ereditarietà
MarshalManagedExceptionMode

Campi

Nome Valore Descrizione
Default 0

Modalità predefinita. Questa operazione è attualmente uguale ThrowObjectiveCExceptiona .

UnwindNativeCode 1

Consentire al runtime di rimuovere i frame nativi.

Questa opzione è disponibile solo quando si usa il runtime MonoVM, non quando si usa il runtime CoreCLR. Il runtime CoreCLR non supporta la rimozione di fotogrammi nativi e interromperà invece il processo. Il runtime CoreCLR viene usato in un'app macOS (non Mac Catalyst) o quando si usa NativeAOT.

Questa opzione non è consigliata, perché comporta un comportamento non definito (l'app può arrestarsi in modo anomalo, perdere memoria, deadlock e così via) se le eccezioni gestite raggiungono il codice nativo (il runtime MonoVM non sa come rimuovere i frame nativi, in modo che tutto possa accadere). L'opzione consigliata è ThrowObjectiveCException.

ThrowObjectiveCException 2

Convertire l'eccezione gestita in un'eccezione Objective-C. Questa è l'opzione consigliata (e anche il comportamento predefinito).

Abort 3

Interrompere quando un'eccezione gestita raggiunge il codice nativo. Questo può essere utile durante il debug per rilevare facilmente quando le eccezioni gestite raggiungono il codice nativo.

Disable 4

Disabilitare il marshalling delle eccezioni gestite. Questa operazione è in effetti uguale UnwindNativeCodea , ad eccezione del fatto che non verranno generati eventi.

Si applica a