异常后,继续运行

rvp*_*als -1 c# continue exception

例如:

 try
{
   Task1();
   Task2();
   Task3();
}
catch (Exception ex)
{
}
Run Code Online (Sandbox Code Playgroud)

现在,如果Task1()中发生异常,则Task2和Task2方法中的代码不会运行.程序停止.

当异常发生时,我怎么能这样做,它下面的代码/方法将继续运行到最后.

谢谢

D S*_*ley 5

异常将执行移动到try块的末尾并进入catch块.要做你想做的事,你必须使用单独的try/catch块:

try
{
   Task1();
}
catch (Exception ex)
{
}

try
{
   Task2();
}
catch (Exception ex)
{
}

try
{
   Task3();
}
catch (Exception ex)
{
}
Run Code Online (Sandbox Code Playgroud)

可以将你的任务放在一个集合中(前提是它们都有相同的签名)和循环,但净效果是相同的:

var tasks = new Action[] {Task1, Task2, Task3};
foreach(var task in tasks)
{
    try
    {
       task();
    }
    catch (Exception ex)
    {
    }
}
Run Code Online (Sandbox Code Playgroud)