VS2012 调试 典型 错误 不进入CATCH
VS2012 调试 典型 异常 不进入CATCH
今天我在尝试着用VS调试异常时,发现了,一个问题,我的代码怎么不会进入CATCH中
出现异常后,他直接显示的是如下的界面

请问我怎么才能调试异常呢?
------解决方案--------------------
不清楚,你的代码我在VS2010中测试没有问题。
不过要注意的是按照规范,在控制台项目或win32项目中使用MFC需要调用AfxWinInit初始化MFC类库。
并且实例化一个CWinApp对象。

看看是不是这个问题。
------解决方案--------------------
VS2013+Win8下测试,可以弹出那个"file not found!"这个MessageBox
------解决方案--------------------
Unhandled exception ... ,遇到未处理异常了吧?“CFileException, e”,中间多了一个逗号?
------解决方案--------------------
用vs2008试了一下,没出现楼主的问题。CATCH (CFileException, e),这里是我看错了。一直用c++的try...catch...,一直不知道MFC还有CATCH(class, e)这个扩展宏。
今天我在尝试着用VS调试异常时,发现了,一个问题,我的代码怎么不会进入CATCH中
#include <iostream>
#include "afxwin.h"
using namespace std;
int main()
{
TRY
{
CFile file(_T("C:\\1.txt"), CFile::modeRead); // 构造CFile对象file,并以只读模式打开一个文件,如果不存在则抛出CFileException异常
}
CATCH (CFileException, e)
{
if (e->m_cause == CFileException::fileNotFound)
{
// 如果捕获到CFileException异常且为文件未找到时,弹出提示对话框
MessageBox(NULL,_T("file not found!"),_T("nihao"),MB_OK);
return 1;
}
}
END_CATCH
return 1;
}
出现异常后,他直接显示的是如下的界面
请问我怎么才能调试异常呢?
------解决方案--------------------
不清楚,你的代码我在VS2010中测试没有问题。
不过要注意的是按照规范,在控制台项目或win32项目中使用MFC需要调用AfxWinInit初始化MFC类库。
并且实例化一个CWinApp对象。
看看是不是这个问题。
------解决方案--------------------
VS2013+Win8下测试,可以弹出那个"file not found!"这个MessageBox
------解决方案--------------------
CATCH (CFileException, e)
Unhandled exception ... ,遇到未处理异常了吧?“CFileException, e”,中间多了一个逗号?
------解决方案--------------------
用vs2008试了一下,没出现楼主的问题。CATCH (CFileException, e),这里是我看错了。一直用c++的try...catch...,一直不知道MFC还有CATCH(class, e)这个扩展宏。
#define CATCH(class, e) } catch (class* e) \
{ ASSERT(e->IsKindOf(RUNTIME_CLASS(class))); \
_afxExceptionLink.m_pException = e;