请问引起异常: Microsoft C++ exception: int @ 0x0012fd00的原因

noono 2006-12-29 11:26:15
// exception.cpp : 定义控制台应用程序的入口点。
//
#include "windows.h"
#include "stdafx.h"

#include "string.h"

#include "time.h"

using namespace std;
class TestClass
{
public:
int SetVal();

private:
int m_val;


};


int TestClass::SetVal()
{


srand( (unsigned)time( NULL ) );

for(int i=0;i<5000;i++)
{
m_val=rand();
if(m_val<1000)
break;
else
continue;
}
if(m_val>=100)
throw m_val;

cout<<dec;
cout<<m_val<<endl;
return m_val;
}

int _tmain(int argc, _TCHAR* argv[])
{
TestClass c_Test;

try
{
c_Test.SetVal();
}
catch(int e)
{
cout<<e<<"大于上限,预设的上限值是 100 "<<endl;
cout<<"press any key to continue...";
cin.ignore();
}

return 0;
}

/*
“exception.exe”: 已加载“C:\Documents and Settings\Administrator\My Documents\Visual Studio Projects\exception\Debug\exception.exe”,已加载符号。
“exception.exe”: 已加载“C:\WINDOWS\system32\ntdll.dll”,未加载任何符号。
“exception.exe”: 已加载“C:\WINDOWS\system32\kernel32.dll”,未加载任何符号。
exception.exe 中的 0x7c812a5b 处最可能的异常: Microsoft C++ exception: int @ 0x0012fd00 。
程序“[2372] exception.exe: 本机”已退出,返回值为 0 (0x0)。
*/
...全文
525 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wsb_8224 2006-12-29
  • 打赏
  • 举报
回复
catch(int e),没有见过这样用的参数,
yjgx007 2006-12-29
  • 打赏
  • 举报
回复
catch(int e) ???
syy64 2006-12-29
  • 打赏
  • 举报
回复
调试看看是哪一行引起的。
noono 2006-12-29
  • 打赏
  • 举报
回复
呵呵,知道了,多谢!
alfwolf 2006-12-29
  • 打赏
  • 举报
回复
你throw任何整数都有这个提示,这个提示是普通的调试输出,证明了你的异常处理机制在正常工作,至于怎么关掉,呵呵,我也不知道...
noono 2006-12-29
  • 打赏
  • 举报
回复
按照MSDN中的例子,我将throw m_val;该为throw 100;也就是throw一个常量时,也会出现同样的问题,为什么呢?
noono 2006-12-29
  • 打赏
  • 举报
回复
如果不想系统出现“exception.exe 中的 0x7c812a5b 处最可能的异常: Microsoft C++ exception: int @ 0x0012fd00 。”这样的提示,应该怎么做?
alfwolf 2006-12-29
  • 打赏
  • 举报
回复
建议你看看Bjarne Stroustrup写的C++程序设计语言,里面有专门的章节讲述异常
alfwolf 2006-12-29
  • 打赏
  • 举报
回复
你看:
for(int i=0;i<5000;i++)
{
m_val=rand();
if(m_val<1000)
break;
else
continue;
}
if(m_val>=100)
throw m_val;

这里,当随机数小于1000但是大于100的时候,你就抛出了异常m_val,
你用int e捕捉到的就是m_val
这个提示就是告诉你这个地方有这样的异常,异常记录在0x0012fd00处的一个int型变量里
没什么的
noono 2006-12-29
  • 打赏
  • 举报
回复
异常能够捕捉到,异常处理代码也能执行,在程序最终退出时出现exception.exe 中的 0x7c812a5b 处最可能的异常: Microsoft C++ exception: int @ 0x0012fd00 。

noono 2006-12-29
  • 打赏
  • 举报
回复
就是catch(int e)这句出的问题
应该怎么处理呢?

16,471

社区成员

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

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

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