c# - C# 如何在捕获后恢复执行我的代码?
问题描述
即使我抛出异常,是否可以在第一次捕获后恢复我的 Programm 的执行?
我做了一个示例程序,但是我将异常添加到我的行List<string>
必须在内部和外部 foreach 之后完全执行,我知道如果我不抛出异常是可能的,但我也必须这样做。
foreach(var x in x)
{
try
{
List<string> exs = new List<string>();
foreach(var a in b)
{
try
{
//...some code
}
catch(Exception ex)
{
throw ex;
}
finally
{
//...some code
}
}
exs.Add(ex);
}
catch(Exception ex)
{
Console.WriteLine(ex);
}
finally
{
//...some code
}
}
解决方案
不要扔掉它们,而是稍后收集并打印它们。
List<Exception> exs = new List<Exception>();
try
{
foreach(var a in b)
{
try
{
//...some code
}
catch(Exception ex)
{
exs.Add(ex);
}
finally
{
//...some code
}
}
}
catch(Exception e)
{
Console.WriteLine(e.ToString());
}
finally
{
//...some code
}
exs.ForEach(ex=> Console.WriteLine(ex.ToString()));
推荐阅读
- .net-core - 无法从 localhost 连接到 Redis
- javascript - javascript 的最新 woocomerce api rest 客户端出现 401 错误
- c# - 如何正确地从 long 转换为 int?
- r - 通过ggplot将直方图更改为线图
- jquery - 插入
- reactjs - 教程中的 gatsby 主题 createPage 有问题
- sql - 如何删除 Firebird 中的现有索引?
- python - 逐行更改文本文件?
- java - 当该人输入错误的输入时,我无法弄清楚如何重新启动循环
- c# - 使用 HttpClient“按原样”转发整个接收到的请求