Visual Studio忽略try catch - 仅调试

时间:2010-03-11 17:54:23

标签: asp.net visual-studio-2008 debugging

我认为错误处理是个好主意。 :)调试时它可能会妨碍 - 特别是使用友好的用户友好消息。在VB6中,我可以选中一个框,让编译器忽略我的错误处理。我 found 允许我在VS中执行类似操作的对话框,但它大约有10,000个复选框而不是一个 - 每次我想要生产编译时,这些复选框太多了。

有没有办法设置VS,所以当我处于调试模式时,我得到一套条件,当我在制作时,我得到另一个? ...还是只有另一种方法来更有效地处理错误和调试?

由于

3 个答案:

答案 0 :(得分:3)

尝试调试菜单并查看例外。您可以将其设置为在抛出异常时自动中断。

答案 1 :(得分:2)

在代码中,我可能会做类似的事情:

#if !DEBUG
    try {
#endif
        DoSomething();
#if !DEBUG
    } catch (Exception ex) {
        LogEx(ex);
        throw new FriendlyException(ex);
    }
#endif

或者。更普遍而且#if更少:

#if DEBUG
   public const bool DEBUG = true;
#else
   public const bool DEBUG = false;
#endif

try {
   DoSomething();
} catch (Exception ex) {
   if (DEBUG) throw;
   LogEx(ex);
   throw new FriendlyException(ex);
}

或者,通用(如P& P的异常处理库):

bool HandleException(Exception ex) {
    return !DEBUG;
}

但是,如果你真正的问题只是Visual Studio GUI - just use a macro

答案 2 :(得分:1)

您可以将此属性添加到方法中:

[Conditional("DEBUG")]

如果您愿意,也可以使用#if #endif语句。