Quando compilo un'app UWP con il compilatore .NET nativo e accendo le ottimizzazioni del codice (essenzialmente la modalità di rilascio), ottengo un NullReferenceException
quando provo ad accedere all'eccezione effettiva in il blocco delle cattureIl codice nel gestore di eccezioni filtrate genera NullReferenceException quando si accede all'eccezione
codice di esempio:
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)
{
}
Si va in blocco catch corretto, e lancia un NullReferenceException
quando accedo ex
. Questo fallisce solo se sono attive entrambe le ottimizzazioni Native e di codice .Net.
Quali sono le cause di questo problema?
@Pan perché rimuovere i tag? Sembra correlato a questa modalità di compilazione e quindi probabilmente a un problema di compilazione con .NET nativo. –
Perché sono irrilevanti. 'exc.Message' è nullo. Questa è una NulLReferenceException semplice. L'OP ha chiamato il costruttore che accetta solo un nome parametro –
No, non lo è ... Il messaggio è predefinito. Si prega di provare questo codice te stesso. –