MarshalManagedExceptionMode Enumeração
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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. |