代码之家  ›  专栏  ›  技术社区  ›  Tim Lovell-Smith

确定是否从异常处理程序调用代码(使用语句)?

  •  2
  • Tim Lovell-Smith  · 技术社区  · 14 年前

    我想做些有点傻的事。在我的 Dispose()

    但这需要时间和金钱,我只想在 Dispose()

    所以我想

    if (exceptionIsCurrentlyRaised) PrintDebugStuff();
    

    .NET是否有这样一个我可以查询的ExceptionsCurrentlyRaised属性?

    3 回复  |  直到 14 年前
        1
  •  0
  •   Community CDub    7 年前

    我不知道是否有这样的事情存在,因为我从未见过。但是听起来你可以创建一个只有一个bool属性的接口。然后,当您在catch语句中但在调用dispose方法之前,只需设置标志。

    我猜这不可能是一个这么容易的解决办法,但我想我会得到一些想法开始。

    编辑:好的,我也发现这篇文章有一个类似的问题: Determine if executing in finally block due to exception being thrown

        2
  •  0
  •   Community CDub    7 年前

    catch 我不认为你能在 finally Dispose 方法将被执行)。到那时,异常可能已经被处理,因此,就运行时而言,没有异常。

    我唯一能看出来的办法就是注册并得到通知 全部的 .NET - First chance exception listener for intensive debugging?

        3
  •  0
  •   John Saunders    14 年前

    实际上,这类似于VisualStudio2010的“IntelliTrace”功能,它可以记录在调试会话期间发生的事情