Wenn ich eine UWP-Anwendung mit dem .NET Native Compiler kompiliere und Code-Optimierungen (im Wesentlichen Release-Modus) einschalten, bekomme ich eine NullReferenceException
, wenn ich versuche, auf die eigentliche Ausnahme zuzugreifen der Fangblock.Code im gefilterten Ausnahme-Handler löst NullReferenceException beim Zugriff auf Ausnahme
Codebeispiel:
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)
{
}
Es geht in den richtigen catch-Block, und wirft ein NullReferenceException
wenn ich ex
zugreifen. Dies schlägt nur fehl, wenn sowohl .Net Native als auch Codeoptimierungen aktiviert sind.
Was verursacht dieses Problem?
@Pan warum die Tags entfernen? Es scheint mit diesem Build-Modus verwandt zu sein und somit möglicherweise ein Compiler-Problem mit .NET nativ. –
Weil sie irrelevant sind. 'exc.Message' ist null. Dies ist eine einfache NulLReferenceException. Das OP hat den Konstruktor aufgerufen, der nur einen Parameternamen akzeptiert. –
Nein, es ist nicht ... Die Nachricht ist voreingestellt. Bitte versuchen Sie diesen Code selbst. –