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

exception的判斷

答題得分者是:pedro
seedbcc
高階會員


發表:232
回覆:272
積分:105
註冊:2003-12-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-04-13 10:13:21 IP:221.169.xxx.xxx 未訂閱
小弟有兩個unit 一個是有form的unit 名稱為a 另一個是處理各種exception的無form unit 名稱為b 在a中 寫一段程式如下 uses b; ... ... try ... except on e:exception do begin **(**,**,**) end; **(**,**,**) 表示傳值給b的一個class 那麼需要傳什麼值?,我b程式中才能判斷它是何種(EDatabaseError,EConvertError,EOleError)錯誤? 而b中如何依據上述傳的值,做判斷?? 是傳e.message嗎? 如何做判斷呢?
pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-04-13 10:19:11 IP:210.61.xxx.xxx 未訂閱
傳一個Exception 宣告PostErrorStatus(Sender:Exception)    
procedure TMyClass.PostErrorStatus(Sender:Exception);
begin
  if Sender is EDatabaseError then xxxx;
  if Sender is EConvertError then xxxx;
end;
seedbcc
高階會員


發表:232
回覆:272
積分:105
註冊:2003-12-10

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-04-13 10:42:43 IP:221.169.xxx.xxx 未訂閱
if Sender is EDatabaseError then xxxx; if Sender is EConvertError then xxxx; 可以改用case 嗎?
seedbcc
高階會員


發表:232
回覆:272
積分:105
註冊:2003-12-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-04-13 10:49:21 IP:221.169.xxx.xxx 未訂閱
傳一個Exception?? 是傳什麼呢? 可不可寫清楚些?
pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-04-13 11:04:11 IP:210.61.xxx.xxx 未訂閱
不可以用case case是判斷序數用的例如 x:Integer; case x of 0: 1: end; 而這裡的狀況是物件, 物件只能用if來判斷.    延續上面的例子 您在程式裡可以這樣使用
try
  Table1.Open;
except
  on E:Exception do
    MyClass.PostErrorStatus(E);
end;
系統時間:2024-07-03 17:52:58
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!