.NETネイティブコンパイラを使用してUWPアプリケーションをコンパイルしてコードの最適化をオンにすると、実際の例外にアクセスしようとするとNullReferenceException
キャッチブロック除外された例外ハンドラのコードで例外が発生するとNullReferenceExceptionがスローされる
コードサンプル:
try
{
throw new ArgumentNullException("Param");
}
catch (ArgumentNullException ex) when (ex.ParamName == "Param")
{
ErrorBlock.Text = ex.ParamName; // ErrorBlock is a TextBlock in the xaml
}
catch (Exception)
{
}
それは正しいcatchブロックに入り、私はex
にアクセスしたときNullReferenceException
をスローします。 .Netネイティブコード最適化とコード最適化が両方ともオンの場合にのみ失敗します。
この問題の原因を教えてください。
@ Panなぜタグを削除しますか?これはこのビルドモードに関係しているようで、おそらく.NETネイティブのコンパイラの問題です。 –
彼らは無関係です。 'exc.Message'はnullです。これは単純なNulLReferenceExceptionです。オペレータがパラメータ名を受け付けるコンストラクタを呼び出す –
いいえ、そうではありません。メッセージはデフォルトで設定されています。このコードを自分で試してください。 –