【发布时间】:2013-07-28 23:03:24
【问题描述】:
考虑这段代码:
try
{
int* test = (int*)0x00000001;
*test = 232;
}
catch(...)
{
}
我收到了Access violation writing location 0x00000001。是否有可能以简单的方式捕捉到这一点,或者避免我的程序以不愉快的方式崩溃?
【问题讨论】:
-
答案取决于操作系统。此代码适用于什么操作系统?
-
异常不是避免修复代码错误的方法
-
@aaronman 这不是我的代码中的错误,我使用的外部 .dll 大多数时候会返回无效的内存位置。我写了这个片段来代表我的问题
-
@Pacha - 在 Linux 中,您可以通过
sigaction设置信号处理程序。两者都没有便携方式。 -
或者,让你的经理相信这是你同事的问题,而不是你的问题。