【发布时间】:2010-01-12 12:44:36
【问题描述】:
处理现有代码,我最近发现 smt 是这样的:
if(Config.ExceptionBehavior.DEBUG_EXCEPTIONS)
{
foo.Foo();
}
else
{
try
{
foo.Foo();
}
catch(Exception ex)
{
//whatever
}
}
我正在摆脱这个 - 但我确实在这种代码的驱动程序中看到了一些价值:基本上,写这个的人希望事情在发生异常的线路上崩溃,以进行调试。同时,这很难闻,因为您在任意复制代码,这使得一切都变得非常混乱和乱七八糟。
在不无耻地乱扔代码的情况下获得类似行为有什么体面的原因吗?
我能想到的唯一选择是一堆#if DEBUG 等,但想知道是否有任何应用程序范围的异常处理库可以给我这样的东西。
任何指针表示赞赏!
【问题讨论】:
-
嗯,您可以将 Visual Studio 配置为中断异常,即使是您要处理的异常,所以我根本看不出这段代码的意义。
-
我知道这一定是微不足道的事情 - 写下一个答案告诉我如何,你会得到一些甜蜜的代表点 :)
-
我想知道这段代码是否抛出了如此多的异常,以至于原始编码器这样做是为了避免调试器经常中断?我以前见过那种味道! :-(
-
这对我来说没有任何意义,而且它完全让我忘记了我可以从 Debug -> Exceptions 配置它是不寻常的
标签: .net exception-handling debugging