【发布时间】:2013-01-14 16:11:31
【问题描述】:
通常访问冲突会终止程序,我无法使用 try 和 catch 捕获 Win32 异常。有没有办法让我的程序运行,即使在访问冲突的情况下?最好我想处理异常并向用户显示发生了访问冲突。
编辑:我希望我的程序非常健壮,即使是针对编程错误。我真正想避免的事情是程序终止,即使以某些损坏状态为代价。
【问题讨论】:
-
什么?内存访问冲突?您应该编写程序以避免内存访问冲突。也许更多的上下文会对任何试图帮助你的人有用。
-
为什么要向用户展示它,他们打算用它做什么?如果 a/v 在您的代码中,请修复它,它在您无法触摸的第 3 部分代码中,找到某种方法来检测它,并显示一些合适的消息,对不起,我不能做您想要的。放入日志文件并吞下它,但不要向用户显示。
-
是的,我不会对用户大喊“访问违规”。这显然是要记录的内容。
-
实际上,这有一个人们似乎错过的优势。如果你想优雅地退出怎么办?如果您想将错误报告发送回服务器怎么办?如果您想弹出一条消息说.. 出了点问题,您想保存状态并将数据发回给我们,以便我们可以在未来的版本中修复它吗?请注意,在大型组织中,程序员有好有坏。没有一个相当大的程序是完全没有错误的。
标签: visual-c++ exception-handling access-violation structured-exception