J'ai un programme simple :
class Program
{
static void Main(string[] args)
{
Run().Wait();
}
private static async Task Run()
{
string someVariable = null;
someVariable.Replace(",", ".");
}
}
La méthode Run() est intentionnellement conçue pour lever l'exception NullReferenceException. Ce qui me dérange, c'est pourquoi l'exception est levée à la ligne
Run.Wait()
plutôt que sur
someVariable.Replace(",",".");
L'exception actuelle est disponible dans InnerException - pourquoi ? Je perds le contexte de débogage, car l'exception est lancée en dehors de la méthode Run.
Si mon programme est synchrone :
class Program
{
static void Main(string[] args)
{
Run();
}
private static void Run()
{
string someVariable = null;
someVariable.Replace(",", ".");
}
}
est déclenchée sur la bonne ligne. Pourquoi l'asynchronisme casse-t-il cela ?