当我使用.NET Native编译器编译UWP应用程序并开启代码优化(通常是发布模式)时,在catch块中尝试访问实际异常时,会出现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)
{
}
当我访问ex
时,它进入了正确的catch块,并抛出NullReferenceException
。只有在同时开启 .Net Native 和代码优化时才会失败。
是什么导致了这个问题?
exc.Message
是空的。这是一个普通的 NulLReferenceException。OP 调用了只接受参数名称的构造函数。 - Panagiotis Kanavos