[問題] vc2008的異常處理
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 )
( 未必需要依照此格式,文章條理清楚即可 )
遇到的問題: (題意請描述清楚)
目前小弟正學到異常處理
主要是想練習 自行定義未處理的異常
設定set_terminate(myHandler)
丟出"abcdefg"後
catch不匹配
改跑自行定義的myHandler()
此程式碼用Code::Blocks 編譯一切正常
但在visual 2008 中只要catch不匹配,就會跑出
於 0x7580b727 的 test2.exe 中發生未處理的例外狀況:
Microsoft C++ 在記憶體位置 0x0043fe48,發生例外狀況: char
編譯也未完成.....
如果catch匹配到vc2008可正常編譯
後來測試發現 例外狀況: char 是throw丟出的型態
不過功力太弱....實在無法找出真相....囧
可以請大大用vc2008幫小弟跑一下嗎...m(_ _)m
以下是小弟的程式碼
#include <iostream>
#include <exception>
using namespace std;
void myHandler()
{
cout<<"myHandler is working"<<endl;
system("pause");
exit(1);
}
int main()
{
try
{
set_terminate(myHandler);
throw "abcdefg";
}
catch (double ex)
{
cout<<"i get catch"<<endl;
}
system("pause");
return 0;
}
程式跑出來的錯誤結果:
code::blocks 正常
vc2008 編譯中即失敗
開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
win7_x64 vc2008
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 112.104.39.129
→
09/23 03:53, , 1F
09/23 03:53, 1F
→
09/23 03:54, , 2F
09/23 03:54, 2F
→
09/23 15:00, , 3F
09/23 15:00, 3F
→
09/23 15:24, , 4F
09/23 15:24, 4F
→
09/23 17:58, , 5F
09/23 17:58, 5F
推
09/23 22:07, , 6F
09/23 22:07, 6F
→
09/23 22:10, , 7F
09/23 22:10, 7F
推
09/23 23:25, , 8F
09/23 23:25, 8F
→
09/23 23:25, , 9F
09/23 23:25, 9F
→
09/23 23:26, , 10F
09/23 23:26, 10F
→
09/23 23:29, , 11F
09/23 23:29, 11F
→
09/24 00:00, , 12F
09/24 00:00, 12F
→
09/24 16:14, , 13F
09/24 16:14, 13F
→
09/24 16:14, , 14F
09/24 16:14, 14F
→
09/24 20:35, , 15F
09/24 20:35, 15F
→
09/24 20:35, , 16F
09/24 20:35, 16F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章