Lor*_*eno 2 .net c# debugging exception visual-studio
我有一个简单的程序:
class Program
{
static void Main(string[] args)
{
Run().Wait();
}
private static async Task Run()
{
string someVariable = null;
someVariable.Replace(",", ".");
}
}
Run Code Online (Sandbox Code Playgroud)
Run()方法是有意设计为引发NullReferenceException的。令我困扰的是为什么在网上抛出异常
Run.Wait()
Run Code Online (Sandbox Code Playgroud)
而不是
someVariable.Replace(",",".");
Run Code Online (Sandbox Code Playgroud)
InnerException中提供了实际的异常-为什么?我丢失了调试上下文,因为在Run方法之外引发了异常。
如果我的程序是同步的:
class Program
{
static void Main(string[] args)
{
Run();
}
private static void Run()
{
string someVariable = null;
someVariable.Replace(",", ".");
}
}
Run Code Online (Sandbox Code Playgroud)
在正确的行上抛出异常。为什么异步打破了这个?