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

請問例外排除的exception問題

尚未結案
hikohito
一般會員


發表:6
回覆:6
積分:2
註冊:2003-09-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-04-06 12:08:50 IP:140.112.xxx.xxx 未訂閱
各位先進, 我用delphi7撰寫一個例外排除程式如下: try IdSMTP1.Connect; try IdMessage1.Body.Assign(Memo1.Lines); IdSMTP1.Send(IdMessage1); MsgLog('啟動Email回報系統成功'); finally IdSMTP1.Disconnect; end; except on e: exception do begin MsgLog('無法啟動Email回報系統'); end; end; end; 但會出現 Class type required的錯誤在 on e: exception do begin 這行 請問是否有人知道問題在哪裡?? 感恩!!
liorex
初階會員


發表:19
回覆:60
積分:32
註冊:2002-08-20

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-04-06 12:23:25 IP:61.218.xxx.xxx 未訂閱
要不要改成這樣試試看
try
  IdSMTP1.Connect;
  try
    IdMessage1.Body.Assign(Memo1.Lines);
    IdSMTP1.Send(IdMessage1);
    MsgLog('啟動Email回報系統成功');
  finally
   IdSMTP1.Disconnect;
  end;
  except
   MsgLog('無法啟動Email回報系統');
  end;
 end;  
---------------------- 一切有為法 如夢幻泡影 如露亦如電 應做如是觀 ----------------------
hikohito
一般會員


發表:6
回覆:6
積分:2
註冊:2003-09-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-04-06 12:54:43 IP:140.112.xxx.xxx 未訂閱
感謝liorex 這樣是可以了,但我很想知道 On E:Exception do Showmessage('Mail 寄送失敗:' e.Message); 像以上的寫法為很多前輩的範例,為何我這邊會出現錯誤!!
hagar
版主


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-04-06 17:26:48 IP:202.39.xxx.xxx 未訂閱
您好, 看程式應該是可以 compile 的 另一種可能, 看是不是對應的 begin/end 有缺少的問題?    -- He just never quits.
hikohito
一般會員


發表:6
回覆:6
積分:2
註冊:2003-09-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-04-06 20:31:53 IP:61.66.xxx.xxx 未訂閱
各位先進 感謝你們的幫忙,我後來把delphi關了,重新 起了一個project,居然可以了,真的很奇怪! 但還是非常感謝各位的幫忙!!
jimmy_wei
高階會員


發表:9
回覆:176
積分:147
註冊:2003-08-28

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-04-08 15:42:09 IP:210.243.xxx.xxx 未訂閱
其實我不是真的很確定你為什麼會跑出這個問題, 但我覺得try finally再外層會合理一點.... 這是我個人的看法啦.... 你不妨試試 try IdSMTP1.Connect; try IdMessage1.Body.Assign(Memo1.Lines); IdSMTP1.Send(IdMessage1); MsgLog('啟動Email回報系統成功'); except on e: exception do begin MsgLog('無法啟動Email回報系統'); end; finally IdSMTP1.Disconnect; end;
jimmy_wei
高階會員


發表:9
回覆:176
積分:147
註冊:2003-08-28

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-04-08 15:50:26 IP:210.243.xxx.xxx 未訂閱
sorry 剛那樣寫也不太好.... 這樣會好一點 try try IdSMTP1.Connect; IdMessage1.Body.Assign(Memo1.Lines); IdSMTP1.Send(IdMessage1); MsgLog('啟動Email回報系統成功'); except on e: exception do begin MsgLog('無法啟動Email回報系統'); end; finally IdSMTP1.Disconnect; end;
hikohito
一般會員


發表:6
回覆:6
積分:2
註冊:2003-09-15

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-04-08 17:13:42 IP:140.112.xxx.xxx 未訂閱
非常感謝大家的幫忙 我想是系統上的問題,現在已經沒問題了,雖然我還是不知道為何會發生!!
aAlan
一般會員


發表:38
回覆:24
積分:12
註冊:2004-07-23

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-08-09 17:56:55 IP:61.228.xxx.xxx 未訂閱
請教一下:   如何知道Exception的內容是什麼呢? 因為我想把Exception寫到log檔,以利 系統管理人員知道錯誤是什麼?    不好意思,我知道了,用e.Message即可知道 像C#有 try .... catch(Exception ex) { WriteLog('郵件發送失敗->' ex.Message); } 用ex.Message就可以知道Exception內容了, 不知道前輩能明瞭我的意思否?還望能教我!
引言: sorry 剛那樣寫也不太好.... 這樣會好一點 try try IdSMTP1.Connect; IdMessage1.Body.Assign(Memo1.Lines); IdSMTP1.Send(IdMessage1); MsgLog('啟動Email回報系統成功'); except on e: exception do begin MsgLog('無法啟動Email回報系統'); end; finally IdSMTP1.Disconnect; end;
發表人 - aAlan 於 2004/08/09 18:01:31
系統時間:2024-05-05 1:44:50
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!