記事https://devblogs.microsoft.com/dotnet/the-good-and-the-bad-of-exception-filters/は、F# が例外フィルターをネイティブにサポートしていることを示唆しています (たとえば、C# には構文がありません)。例外フィルターは適切な catch ブロックの前に実行され、それらが true を返す場合、catch ブロックが実行されます。私はF#がこのようなものを使ってこれを行うと想像します
with
| ex when filter(ex) -> printfn "Caught"
ただし、私にとっては、通常の「catch [mscorlib]System.Object」にコンパイルされ、catch ブロック内のフィルター関数が呼び出され、生成された MSIL に「フィルター」セクションが存在しません。問題は、F# がこの構造を本当にサポートしているのかということです。
ありがとう