如何解决Debug.Assert导致我的应用程序退出
我创建了一个包含许多实用程序功能以执行某些任务的库,并将其放置在它自己的DLL中。 在该库中的所有方法中,我都放置了Debug.Assert语句来验证应用程序的状态。 问题是,当断言触发时(条件为假),它会显示对话框,单击“中止”会导致使用此DLL的整个应用程序崩溃。 这提出了两个问题: 可以避免吗?我希望这会引发异常而不退出应用程序。 DLL如何导致加载它的应用程序退出?这不是安全漏洞吗? 谢谢解决方法
如果要抛出异常,为什么不抛出异常呢?
更改
Assert(var);
至
if(!var)
throw new Exception(\"var was false\");
断言将离开应用程序,在这里断言可以保护您免受编码器错误的影响。如果一个函数永远不应该接收一个空指针,而如果确实这样做,那将是一个错误,那么断言将是正确的工具。
如果您想表达一个例外情况,那么您所寻找的工具就是例外
,Debug.Assert的目的不是最终发布代码(因此\'Debug \':))。选择中止意味着终止提出断言的过程。如果选择“忽略”,它将继续进行,并且无论哪种方式都不会在Release版本中发生,因为Debug.Assert将被剥离。
编辑:这是MSDN解释的链接:http://msdn.microsoft.com/zh-cn/library/e63efys0.aspx
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。