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     

要回复问题请先登录注册