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

請問Try Except 及 Try Finally 的使用時機?

尚未結案
tomking
一般會員


發表:9
回覆:7
積分:3
註冊:2003-03-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-11 08:37:43 IP:61.221.xxx.xxx 未訂閱
請問Try Except 及 Try Finally 的使用時機: 以及若放的位置不對,是不是會影響效能或記憶體; 而要放在哪才是最佳位置呢? 希望各位前輩能指點一二 謝謝! 發表人 - tomking 於 2004/02/11 08:38:41
P.D.
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-12 02:44:45 IP:61.71.xxx.xxx 未訂閱
引言: 請問Try Except 及 Try Finally 的使用時機: 以及若放的位置不對,是不是會影響效能或記憶體; 而要放在哪才是最佳位置呢? 希望各位前輩能指點一二 謝謝! 發表人 - tomking 於 2004/02/11 08:38:41
用最簡單的說明
try
   執行動作
finally
   如果上述動作被中止或結束, 到本處執行
end    try
   執行動作
except
   如果上述動作發生錯誤, 到本處執行, 再執行 end 動作
end    try ... except 通常使用在希望控制錯誤引發的位置, 例如
try 
   資料存檔(post)
except
   showmessage('資料儲存失敗');
end;
其他可以參考help! 發表人 - P.D. 於 2004/02/12 03:04:56
water
初階會員


發表:90
回覆:89
積分:35
註冊:2003-07-07

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-13 08:23:08 IP:61.222.xxx.xxx 未訂閱
為何下段程式碼.使用 finally or except    當 aa.xls 不存在 . 都會出現 錯誤訊息 ??    
      Ms_dir :=GetCurrentDir();  // 取得目前程式位置
  Ms_Excel1:='AA.xls';
  Ms_Excel1:=Ms_Dir   '\' Ms_Excel1 ;   // 路徑 檔名        // test aa.xls 設定檔
  try
    Ms_ExcelAP1 := CreateOleObject('Excel.Application');
    Ms_ExcelWB1 := Ms_ExcelAP1.WorkBooks.OPEN(Ms_Excel1); // 舊檔 開啟
  finally
    Ms_ExcelWB1 := Ms_ExcelAP1.WorkBooks.add;              // 新檔 重建
    Ms_ExcelAP1.cells[1,1].value := '生產資料檔路徑';
    Ms_ExcelAP1.cells[1,2].value := '工單明細檔路徑';
    Ms_ExcelWB1.SaveAS(Ms_Excel1);                        // save
  end
一切無為法.如虛亦如空.如如心不動.萬法在其中
------
一切無為法.如虛亦如空.如如心不動.萬法在其中
water
初階會員


發表:90
回覆:89
積分:35
註冊:2003-07-07

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-02-13 09:15:29 IP:61.222.xxx.xxx 未訂閱
sorry , 沒表達清楚 
我要表達的是:aa.xls 不存在,如何新增此檔案??
       不是:把錯誤視窗關掉 
DELPHI中是在tools=>debugger options=>language exceptions=>stop on delphi exceptions 將和取方塊取消 一樣會出現錯誤 ?? 一切無為法.如虛亦如空.如如心不動.萬法在其中 發表人 - water 於 2004/02/13 09:37:20 發表人 - water 於 2004/02/13 09:41:12
------
一切無為法.如虛亦如空.如如心不動.萬法在其中
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-02-13 09:40:05 IP:203.95.xxx.xxx 未訂閱
引言: 我要表達的是:aa.xls 不存在,如何新增此檔案??
若是這樣的話, 可以不必要使用到 try ... 的語法, 一般 try... 的語法是用來處理 "意外" 的狀況, 若是是已知的可能狀況, 其實自己先處理好就行了, 如你的狀況來看, 可以利用 FileExists function 來檢查, 如下操作:
procedure TForm1.Button1Click(Sender: TObject);
var
  ex, wb: Variant;
  filename: string;
begin
  try
    ex := CreateOleObject('Excel.Application');
    filename := 'c:\111.xls';
    if FileExists(filename) then
    begin
      wb := ex.WorkBooks.Open(filename);
    end
    else
    begin
      wb := ex.WorkBooks.Add;
      wb.SaveAs(filename);
    end;
    ex.Visible := true;
  except
    on E: Exception do ShowMessage('ERROR:' E.Message);
  end;
end;
這樣就可以解決了, 而且 try... 還是可以用在未知的 error handle 上哦~
water
初階會員


發表:90
回覆:89
積分:35
註冊:2003-07-07

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-02-13 09:57:07 IP:61.222.xxx.xxx 未訂閱
請教程式執行時,使用視窗右上角X離開.(圖1) 會照成系統資源未釋放(圖2) 要如何處理 ?? 此excel 判斷式要如何下指令?? 放在哪一個事件裡面?? 圖1 圖2 一切無為法.如虛亦如空.如如心不動.萬法在其中
------
一切無為法.如虛亦如空.如如心不動.萬法在其中
系統時間:2024-09-13 23:07:45
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!