捕获原始异常类型

Catching Original Exception type

提问人:user3844416 提问时间:10/27/2023 最后编辑:user3844416 更新时间:10/28/2023 访问量:40

问:

我想使用 catch 语句来捕获由低于当前级别的代码抛出的异常。

我正在使用此代码来捕获异常

catch (ArgumentException ex)
  {
    HelpFunc.writeToLog($"ArgumentException: '{ex.InnerException?.Message}'", "Error");
  }
catch (Exception ex)
  {
    HelpFunc.writeToLog($"Exception: '{ex.InnerException?.Message}'", "Error");
  }

请参阅此内容,了解我使用 InnerException 查找原始异常的原因

这很好用,但异常会作为一般异常而不是原始 ArgumentException 类型被选中。有没有办法通过原始抛出的异常来捕获?

C# 异常

评论


答:

1赞 user3844416 10/28/2023 #1

啊,我找到了这个方法

catch (Exception ex) when (ex.InnerException is ArgumentException)
    {
    HelpFunc.writeToLog($"Inner Exception: Argument Exception: '{ex.InnerException?.Message}'", "Error");
    }

这似乎捡起了它。