請問Try Except 及 Try Finally 的使用時機? |
尚未結案
|
tomking
一般會員 發表:9 回覆:7 積分:3 註冊:2003-03-31 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
引言: 請問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 發送簡訊給我 |
為何下段程式碼.使用 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 發送簡訊給我 |
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 發送簡訊給我 |
引言: 我要表達的是: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 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |