VS2012 调试 典型 异常 不进入CATCH

Arron_Yao 2014-01-14 05:39:24
今天我在尝试着用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;
}

出现异常后,他直接显示的是如下的界面

请问我怎么才能调试异常呢?
...全文
311 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Arron_Yao 2014-01-15
  • 打赏
  • 举报
回复
哈哈,谢谢大家,在CharlesSimonyi的启发下,我发现自己建工程建错了。应该用Console application ,我建成了Windows application
zhuyf87 2014-01-14
  • 打赏
  • 举报
回复
用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;
zhuyf87 2014-01-14
  • 打赏
  • 举报
回复
CATCH (CFileException, e)
Unhandled exception ... ,遇到未处理异常了吧?“CFileException, e”,中间多了一个逗号?
Eleven 2014-01-14
  • 打赏
  • 举报
回复
VS2013+Win8下测试,可以弹出那个"file not found!"这个MessageBox
encoderlee 版主 2014-01-14
  • 打赏
  • 举报
回复
不清楚,你的代码我在VS2010中测试没有问题。
不过要注意的是按照规范,在控制台项目或win32项目中使用MFC需要调用AfxWinInit初始化MFC类库。
并且实例化一个CWinApp对象。

看看是不是这个问题。
Arron_Yao 2014-01-14
  • 打赏
  • 举报
回复
自己先顶一下把

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧