仅在项目处于调试模式时抛出异常

Ais*_*iva 3 .net c# asp.net debugging exception-handling

我正在开发一个ASP.NET Web表单应用程序.我有很多函数在某些特定情况下抛出异常.但是有很多功能.throw ex;在更新我的应用程序时,我不想一次又一次地删除和添加语句.那么,有什么方法可以检查项目是否处于调试模式?(即检查是否debug="true"在web.config中).

try{
     //some code
}
catch (Exception ex)
{
     if(//----what condition to check debug mode?----)
         throw ex;
}
Run Code Online (Sandbox Code Playgroud)

Ayd*_*din 6

您可以使用#if编译器指令:

#if(DEBUG)
/// do your thing
#endif
Run Code Online (Sandbox Code Playgroud)

  • 另一种方法是使用[Conditional("DEBUG")]属性,您可以在内部引发异常的方法上设置该属性.编译器检查条件属性,如果您不处于调试模式,则从MSIL中删除方法调用. (3认同)
  • @GeorgeLica 绝对更干净,尽管应该记住它将适用于整个方法...您可以有一个方法,该方法采用应用了该属性的操作委托。会让事情变得更加干净 (2认同)
  • 十分优雅!很不错!这就是我喜欢编程的原因,它就像艺术:塑造代码的无限可能性和无限风格 (2认同)