MarshalManagedExceptionMode Enumeração

Definição

Essa enumeração é usada para especificar o que fazer quando uma exceção gerenciada é gerada e essa exceção atinge o código nativo.

public enum MarshalManagedExceptionMode
type MarshalManagedExceptionMode = 
Herança
MarshalManagedExceptionMode

Campos

Nome Valor Description
Default 0

O modo padrão. No momento, isso é o mesmo que ThrowObjectiveCException.

UnwindNativeCode 1

Permitir que o runtime desenrola quadros nativos.

Essa opção só está disponível ao usar o runtime do MonoVM, não ao usar o runtime do CoreCLR. O runtime do CoreCLR não dá suporte ao desenrolamento de quadros nativos e anulará o processo. O runtime do CoreCLR é usado em um aplicativo macOS (não Mac Catalyst) ou ao usar NativeAOT.

Essa opção não é recomendada, pois leva a um comportamento indefinido (o aplicativo pode falhar, vazar memória, deadlock etc.) se exceções gerenciadas atingirem o código nativo (o runtime do MonoVM não sabe como desabilitar quadros nativos, portanto, tudo pode acontecer). A opção recomendada é ThrowObjectiveCException.

ThrowObjectiveCException 2

Converta a exceção gerenciada em uma exceção Objective-C. Essa é a opção recomendada (e também o comportamento padrão).

Abort 3

Anulação quando uma exceção gerenciada atinge o código nativo. Isso pode ser útil durante a depuração para detectar facilmente quando exceções gerenciadas atingem o código nativo.

Disable 4

Desabilitar exceções gerenciadas de marshalling. Isso é efetivamente o mesmo UnwindNativeCodeque , exceto que nenhum evento será gerado.

Aplica-se a