我在整个代码中都有一个try catch(或者在F#中)结构,但我并不真的需要它们在调试模式下,我更容易通过VS调试器调试错误。
所以我想标记try catch代码行只能在发布模式下编译 - 是否有可能?
答案 0 :(得分:8)
你可以用:
包围它们#if !DEBUG
...
#endif
答案 1 :(得分:4)
您正在寻找的是预处理器命令,如下所示:
#if !DEBUG
try {
#endif
code();
#if !DEBUG
}
catch(Exception)
{ dostuff(); }
#endif
MSDN文章:http://msdn.microsoft.com/en-us/library/4y6tbswk.aspx
答案 2 :(得分:3)
!
不是F#中的预处理程序指令,因此您需要执行以下操作:
#if DEBUG
#else
try
#endif
...
#if DEBUG
#else
with e -> ...
#endif
答案 3 :(得分:3)
没有人提及可以应用于代码块的ConditionalAttribute
。对于错误条件,代码块(及其所有调用)将从编译步骤中跳过。
参考:https://msdn.microsoft.com/en-us/library/system.diagnostics.conditionalattribute(v=vs.110).aspx
答案 4 :(得分:2)
您可以使用#if预处理器命令
#if !DEBUG
try {
#endif
// your "exceptional" code
#if !DEBUG
} catch { }
#endif