class A
{
public:
virtual void test(void) = 0; A()
{
kkkk();
} void kkkk(void)
{
test();
}
};class B : public A
{
public:
void test(void)
{
}
};上述代码模拟了一个runtime异常:当我去new一个B的类时,程序就会报run time异常。
seh和try..catch方法肯定无法捕获这个异常,并且无法阻止系统弹出run time异常的对话框。
请问:
1,我如何让程序不弹出run time异常的对话框
2,怎样可以捕获到这个异常
我不是说了嘛,我用错误代码模拟了一个run time异常。
我的问题是想捕捉这个异常,屏蔽run time对话框。
使用 SEH 异常处理。
这是 Microsoft 在 Win2000 之后引入的机制。
程序最终交到使用者手上后,不是调试版本,没有"在命令行上看到输出结果"这一说。
不做异常捕捉,根本不知道哪里出现了问题。SetErrorMode方法可以屏蔽掉对话框了。
但是异常还是捕获不到。
不可能!
所有未被处理的异常都会被 SEH 处理。检查你的 SEH 是否使用了正确的处理函数 ::SetUnhandledExceptionFilter