全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1180
推到 Plurk!
推到 Facebook!

如何擷取程式被中斷的訊息阿...

尚未結案
liang-shien
一般會員


發表:15
回覆:21
積分:7
註冊:2005-05-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-06-22 10:54:37 IP:61.230.xxx.xxx 未訂閱
我在網路上抓了一個元件,執行它的function後,正常的話,是都沒有訊息產生.可是當有錯誤的時候它就整個程式被中斷,然後就跳出了..所以有辦法攔截它,不要讓它跳出嗎?
bass15
高階會員


發表:24
回覆:171
積分:119
註冊:2003-10-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-06-24 01:33:28 IP:61.59.xxx.xxx 未訂閱
試試把他catch起來..
try {
 function();
} catch(...) {
 ShowMessage("function failed");
}  
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-06-24 02:14:46 IP:221.169.xxx.xxx 未訂閱
liang-shien:
試試於.hpp檔加入
public:                // User declarations
        __fastcall TFormMain(TComponent* Owner);
        void __fastcall HandleExceptions(TObject *Sender, Exception *E);
.cpp檔
void __fastcall TFormMain::FormCreate(TObject *Sender)
{
  // 設定exception handler.自定義異常處理窗口
  Application->OnException = HandleExceptions;
}
void __fastcall TFormMain::HandleExceptions(TObject *Sender, Exception *E)
{
  if (E->Message.Length())  {
    Screen->Cursor = crArrow;
    AnsiString errorstr="應用程序發生了錯誤.\n" E->Message;
    Application->MessageBox(errorstr.c_str(),"發生異常",MB_OK);
  }
}
試試是否可以攔到錯誤訊息再決定程式走向。
請參考!    
Andy Chang
------
Andy Chang
liang-shien
一般會員


發表:15
回覆:21
積分:7
註冊:2005-05-26

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-06-24 18:46:17 IP:61.230.xxx.xxx 未訂閱
我是用indy的post功能...http1.post("....."); 可是用了try...catch 後還是沒辦法..在post那一行還是會出現它自己的錯誤訊息,然後程式就中斷了... andychang1690,你的方法是不是會整個程式的exception都是由 void __fastcall TFormMain::HandleExceptions(TObject *Sender, Exception *E)來控制阿...可是這樣的話,我其他程式也有寫exception了ㄝ... 現在就是因為元件是抓來的.. 還是說,要post之前,我先判斷網路有無連線...因為我現在是用無線網路,我看了一下windows api...它的internetGetConnectionState只有判斷有限的ㄝ 請問無線要怎麼判斷呢...
bass15
高階會員


發表:24
回覆:171
積分:119
註冊:2003-10-27

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-06-25 00:41:20 IP:61.59.xxx.xxx 未訂閱
試試看直接去執行 .exe執行檔(不是用程式RUN).. 如果catch起來應該可以RUN下去.. 如果不行的話 建議你把CODE PO上來 讓大家來看看是哪裡會跳掉??
liang-shien
一般會員


發表:15
回覆:21
積分:7
註冊:2005-05-26

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-06-27 15:28:27 IP:61.230.xxx.xxx 未訂閱
bass15,可以了...exe檔就可以了..可是為什麼用run它不會停下來阿...
bass15
高階會員


發表:24
回覆:171
積分:119
註冊:2003-10-27

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-06-27 21:03:29 IP:61.59.xxx.xxx 未訂閱
當你用BCB環境RUN程式 基本上表示你在Debug程式 所以..他預設的設定是會跳Exception給你看 然後會暫停在那裡..你要繼續按RUN(F9) 他就可以繼續.. 進階可以去調整Projects裡面的一些Compiler等設定, 會有不同的結果, 像是哪些Warnning要秀之類的..
系統時間:2024-05-04 0:42:41
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!