当C#抛出异常时,它可以有一个内部异常.我想做的是获取最内部的异常,或者换句话说,没有内部异常的叶异常.我可以在一段时间内完成这项工作:

while (e.InnerException != null)
{
    e = e.InnerException;
}

但我想知道是否有一个班轮我可以用来做这件事.

推荐答案

Oneliner:)

while (e.InnerException != null) e = e.InnerException;

显然,你不能让它变得更简单.

As said in this answer by Glenn McElhoe, it's the only reliable way.

.net相关问答推荐

.NET restore/build在使用组织包的Github Action工作流中调用时获得401

如何正确使用await using语法?

MongoDB GridFs with C#,如何存储图片等文件?

为什么不能使用 null 作为 Dictionary 的键?

整个命名空间的SuppressMessage

发布版本中的 Debug.WriteLine

具有透明背景且包含不透明控件的 WPF 窗口

使用 EPPlus 时如何设置列类型

C# 有办法给我一个不可变的字典吗?

Int 到字节数组

C# 的 Actors 有什么好的实现吗?

软件包版本始终为 1.0.0,带有 dotnet pack

如何制作通用类型转换函数

如何在多个解决方案之间共享相同的 Resharper 设置,无需人工干预?

确定使用 ContextMenuStrip 的控件

如何判断枚举是否包含数字?

WPF 中的 Application.DoEvents() 在哪里?

在 try/catch/finally 中等待的一个很好的解决方案?

如何使用 AutoMapper .ForMember?

Linq Query 不断抛出无法创建 System.Object 类型的常量值......,为什么?