是否可以通过LINQ输出抛出异常的所有错误消息,包括inners?
我实现了没有LINQ的功能,但我希望有更简洁的代码.(这不是LINQ的目的吗?)
没有LINQ的代码如下:
try {
...
} catch (Exception ex) {
string msg = "Exception thrown with message(s): ";
Exception curEx= ex;
do {
msg += string.Format("\n {0}", curEx.Message);
curEx = curEx.InnerException;
} while (curEx != null);
MessageBox.Show(msg);
}
Run Code Online (Sandbox Code Playgroud)
Linq处理序列,即对象集合.该exception.InnerException层次结构,而不是单一的嵌套对象的实例.你在算法上做的事情本质上不是一个序列操作,并且Linq方法不会涵盖它.
您可以定义一个探索层次结构的方法,并在找到对象时返回(产生)一系列对象,但这最终将与您当前用于探索深度的算法相同,尽管您可以选择应用关于结果的序列操作(Linq).