【发布时间】:2017-04-26 03:13:15
【问题描述】:
当我想调试抛出异常的应用程序时,这意味着我需要像这样禁用 try-catch 块:
#if !DEBUG
try
{
#endif
// Do something
#if !DEBUG
}
catch (ArgumentException)
{
Console.WriteLine("Something wrong");
}
#endif
注意:我知道 Visual Studio 处理异常时会中断,但缺点是它会在同一类型的每个异常处中断。 编辑改写我的意思:例如,函数 A 和 B 都抛出 NullReferenceException,但我只想检查 A 何时抛出它,而不是 B(在 B 中处理的 NulRefExc 已经正确)。 p>
有人可能会问我为什么需要它。通常我在没有调试的情况下运行 ASP.NET MVC 代码(但仍在调试构建中,它具有 DEBUG 变量),并且抛出异常而不是捕获它真的很棒(当然仅在开发模式下),因为带有堆栈跟踪的错误页面将显示出来,因此我们可以更快地跟踪错误。
上面的代码有没有更简洁的写法?
【问题讨论】:
-
我不明白这样做(想象有一种方法)如何使您免于“缺点是它会在同一类型的每个异常时中断,无论它发生在哪里”
-
你需要捕获全局异常吗?并在其上设置断点,您将在调试器中获得带有堆栈跟踪的完整异常。
-
@user5328504 抱歉,我改写了我的意思。
标签: c# asp.net exception try-catch