線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1711
推到 Plurk!
推到 Facebook!

關於CreateOleObject的問題,很急,拜託......

尚未結案
sherryliu
一般會員


發表:2
回覆:2
積分:0
註冊:2004-03-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-03-25 21:13:16 IP:61.59.xxx.xxx 未訂閱
各位高手,拜託..可否替我解答一個問題,已經找了許多資料了.. 請問在   try     Outlook := CreateOleObject('Outlook.Application');   except     i :=0;   end; 若系統中並沒有安裝outlook,我知道 CreateOleObject('Outlook.Application'); 這一段是會有問題的 即出現 "Project1.exe raised exception class EOleSysError with message '無效的類別字串'"之錯誤 但我想問的是,try並沒有辦法將此錯誤擋掉,讓一般user不要看到此訊息, 我到底該怎麼做呢?< >< >< >< >
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-03-25 21:28:59 IP:202.39.xxx.xxx 未訂閱
用 try..except 在 IDE 下 run 時仍會出現非自訂的錯誤訊息 想取消這個功能在 Tools -> Debugger Options -> Language Exceptions 頁 最底下有個 Stop on Delphi Exceptions 的 checkbox 不要打勾即可    --
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-03-26 15:38:29 IP:61.71.xxx.xxx 未訂閱
引言: 各位高手,拜託..可否替我解答一個問題,已經找了許多資料了.. 請問在 try Outlook := CreateOleObject('Outlook.Application'); except i :=0; end; 若系統中並沒有安裝outlook,我知道 CreateOleObject('Outlook.Application'); 這一段是會有問題的 即出現 "Project1.exe raised exception class EOleSysError with message '無效的類別字串'"之錯誤 但我想問的是,try並沒有辦法將此錯誤擋掉,讓一般user不要看到此訊息, 我到底該怎麼做呢?< >< >< >< >
我想 hagar版主的做法是會使所有的錯誤例外都無法被發生, 如果你只是單純 這段想讓user不知道有任何錯誤發生(連訊息都不要的話) try outlook:= Createoldobject(); ..... except // 這中間不要加任何動作即可 end;
sherryliu
一般會員


發表:2
回覆:2
積分:0
註冊:2004-03-24

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-03-26 15:47:17 IP:203.69.xxx.xxx 未訂閱
謝謝各位的回答,但我想, 可能是我問的不清楚, 我的意思是說,在 try outlook:= Createoldobject(); 這一行後並不會跳到excetp之後,而是直接由系統發出錯誤,所以, 我想做到的是,截取系統的錯誤訊息,而轉換成 user看的懂的訊息.. 所以,可否請各位再幫幫忙,謝謝!!
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-03-26 16:37:12 IP:202.39.xxx.xxx 未訂閱
小弟試了一下兩種狀況, 都在 IDE 底下 run 程式,  把 Stop on Delphi Exceptions 的勾勾取消後 狀況一, 結果會出現 except 底下這行的 error 訊息:
procedure TForm1.Button1Click(Sender: TObject);
begin
  try
    StrToInt('a');
  except
    ShowMessage('error');
  end;
end;
狀況二, 結果會出現 'a' is not a valid integer 的錯誤訊息:
procedure TForm1.Button1Click(Sender: TObject);
begin
  StrToInt('a');
end;
所以結論是應該不會如 PD 兄所言什麼錯誤例外訊息都不會發生 另外 sherryliu 所問的就是在 except 底下處理, 例:
  try
    Outlook := CreateOleObject('Outlook.Application');
  except
    on E: Exception do
    begin
      i :=0;
      MessageDlg(E.Message, mtError, [mbOK], 0);
    end;
  end;
[/code] -- Variable hagar declared but never used
系統時間:2024-05-14 16:34:00
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!