Dim*_*nev 10 .net c# exception-handling exception
假设我有这样的代码:
try
{
for (int i = 0; i < 10; i++)
{
if (i == 2 || i == 4)
{
throw new Exception("Test " + i);
}
}
}
catch (Exception ex)
{
errorLog.AppendLine(ex.Message);
}
Run Code Online (Sandbox Code Playgroud)
现在,显然执行将停止i==2,但我想让它完成整个迭代,以便在errorLog有两个条目(for i==2和i==4)所以,是否有可能继续迭代甚至抛出异常?
Ser*_*rvy 45
只需改变catch循环内部的范围,而不是在其外部:
for (int i = 0; i < 10; i++)
{
try
{
if (i == 2 || i == 4)
{
throw new Exception("Test " + i);
}
}
catch (Exception ex)
{
errorLog.AppendLine(ex.Message);
}
}
Run Code Online (Sandbox Code Playgroud)
为什么要抛出异常呢?您可以立即写入日志:
for (int i = 0; i < 10; i++)
{
if (i == 2 || i == 4)
{
errorLog.AppendLine(ex.Message);
continue;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26823 次 |
| 最近记录: |