MarshalManagedExceptionMode 列挙型

定義

この列挙型は、マネージド例外がスローされ、その例外がネイティブ コードに達したときに実行する処理を指定するために使用されます。

public enum MarshalManagedExceptionMode
type MarshalManagedExceptionMode = 
継承
MarshalManagedExceptionMode

フィールド

名前 説明
Default 0

既定のモード。 これは現在、 ThrowObjectiveCExceptionと同じです。

UnwindNativeCode 1

ランタイムがネイティブ フレームをアンワインドできるようにします。

このオプションは、CoreCLR ランタイムを使用する場合ではなく、MonoVM ランタイムを使用する場合にのみ使用できます。 CoreCLR ランタイムは、ネイティブ フレームのアンワインドをサポートしていないため、代わりにプロセスを中止するだけです。 CoreCLR ランタイムは、macOS (Mac Catalyst ではない) アプリで、または NativeAOT を使用する場合に使用されます。

マネージド例外がネイティブ コードに到達した場合 (MonoVM ランタイムはネイティブ フレームをアンワインドする方法を知らないため、何も起こり得ないので)、未定義の動作 (アプリがクラッシュしたり、メモリがリークしたり、デッドロックが発生したりする可能性があります) が発生するため、このオプションは推奨されません。 推奨されるオプションは ThrowObjectiveCException

ThrowObjectiveCException 2

マネージド例外を Objective-C 例外に変換します。 これは推奨されるオプションです (また、既定の動作も)。

Abort 3

マネージド例外がネイティブ コードに達すると中止します。 これは、マネージド例外がネイティブ コードに到達したときに簡単に検出するために、デバッグ中に役立つ場合があります。

Disable 4

マーシャリングのマネージド例外を無効にします。 これは実質的に UnwindNativeCodeと同じですが、イベントが発生しない点が異なります。

適用対象