请看下面的代码-
如果我在发布模式下执行代码,则输出为“发生一个或多个错误”,并且一旦我按下“Enter”键,“Hello”也会被显示。如果我在调试模式下运行代码,则输出与发布模式相同。但是,在IDE中进行调试时,当控件执行以下行时,将出现IDE异常消息(“用户代码中未处理的异常”)。
如果我从那里继续,程序不会崩溃,并且显示与发布模式相同的输出。这是处理异常的正确方式吗?
static void Main(string[] args)
{
// Get the task.
var task = Task.Factory.StartNew<int>(() => { return div(32, 0); });
// For error handling.
task.ContinueWith(t => { Console.WriteLine(t.Exception.Message); },
TaskContinuationOptions.OnlyOnFaulted);
// If it succeeded.
task.ContinueWith(t => { Console.WriteLine(t.Result); },
TaskContinuationOptions.OnlyOnRanToCompletion);
Console.ReadKey();
Console.WriteLine("Hello");
}
private static int div(int x, int y)
{
if (y == 0)
{
throw new ArgumentException("y");
}
return x / y;
}
如果我在发布模式下执行代码,则输出为“发生一个或多个错误”,并且一旦我按下“Enter”键,“Hello”也会被显示。如果我在调试模式下运行代码,则输出与发布模式相同。但是,在IDE中进行调试时,当控件执行以下行时,将出现IDE异常消息(“用户代码中未处理的异常”)。
throw new ArgumentException("y");
如果我从那里继续,程序不会崩溃,并且显示与发布模式相同的输出。这是处理异常的正确方式吗?