欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

为何有了条件编译符号“debug”还要来个debugger.isattached

更新时间: 2014-01-05 02:38:15 责任编辑: Author_N1

 

为什么有了条件编译符号“DEBUG”还要来个Debugger.IsAttached
比如官方的示例代码
if (Debugger.IsAttached)
{
  // 出现未处理的异常;强行进入调试器
  Debugger.Break();
}

这样不更好吗?
#if DEBUG
  // 出现未处理的异常;强行进入调试器
  Debugger.Break();
#endif

我到目前还没有感受到IsAttached给我带来了多大的好处,反而把发布版本不需要的代码编译进去了。
难道仅仅为了不用再在DEBUG和release之间切换?
--参考方法--
这个跟条件编译符号不是一回事吧,release编译一样可以用Debugger.IsAttached。比如捕获到异常正常运行情况下弹出提示信息或者写日志就可以,如果加载了调试器就直接抛出方便调试。
可以参考下这个回答http://stackoverflow.com/questions/7073266/if-debug-vs-system-diagnostics-debugger-isattached,
--参考方法--
条件编译时在编译时期做的决策,

if (Debugger.IsAttached)这是在运行时的,

两者场景就不一样
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:38:15
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/12409/
本文WWW.DOC100.NET DOC100.NET版权所有。