MarshalManagedExceptionMode 列挙型
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
この列挙型は、マネージド例外がスローされ、その例外がネイティブ コードに達したときに実行する処理を指定するために使用されます。
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と同じですが、イベントが発生しない点が異なります。 |