请问如何在错误发生后继续运行? |
答題得分者是:shaofu
|
bloodrose
一般會員 發表:8 回覆:9 積分:3 註冊:2003-10-27 發送簡訊給我 |
|
hahalin
版主 發表:295 回覆:1698 積分:823 註冊:2002-04-14 發送簡訊給我 |
節錄自delphi的help try
...
except
on EZeroDivide do HandleZeroDivide;
on EOverflow do HandleOverflow;
on EMathError do HandleMathError;
else
HandleAllOthers;
end; 如果你可以很明確的事先了解會有幾種error,那就可以如上這樣做... 以EZeroDivide 是一個事先定義好的except class, 當然如果你要繼續問什麼是except class,那麼這個post會沒完沒了一直下去, 總之,你可以去研究的方向就是這樣囉,另外,except class是可以自行再延伸定義的. 交流交流吧...
|
bloodrose
一般會員 發表:8 回覆:9 積分:3 註冊:2003-10-27 發送簡訊給我 |
|
hahalin
版主 發表:295 回覆:1698 積分:823 註冊:2002-04-14 發送簡訊給我 |
|
bloodrose
一般會員 發表:8 回覆:9 積分:3 註冊:2003-10-27 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 据小弟所知﹐程式迴圈中有Break, Continue, Exit三種強制性敘述方法﹕
Var I : Integer; begin For I:=1 to 5 do if I=3 then begin Break; //結果ShowMessage出現1; 2; 結束 {Continue; //結果ShowMessage出現1; 2; 4; 5; 結束} {Exit; //結果ShowMessage出現1; 2} ShowMessage(IntToStr(I)); end; ShowMessage('結束'); end;您可試一下同樣的方法﹐在Try中使用如上的強制性敘述方法﹐參照您的問題來看﹐應是第二種方法罷﹒ 參考看看﹗ ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟 |
hahalin
版主 發表:295 回覆:1698 積分:823 註冊:2002-04-14 發送簡訊給我 |
引言: 还是不行。TRY...EXCEPT...END的用法是,如果在TRY中出现错误,则GOTO到EXCEPT中处理异常,处理完后就结束了,而不会再GOTO到TRY中出现错误的语句处接着运行下一条语句............也就是说,如果在EXCEPT处什么都不写,则该TRY...EXCEPT...END模块直接结束。? 你應該是在ide環境下執行的吧,你可以試著直接開啟執行檔(exe),或是把delphi的 tool->debugger options->language exceptions的頁面把 stop on delphi exceptions不要勾選. 說對了嗎? |
hahalin
版主 發表:295 回覆:1698 積分:823 註冊:2002-04-14 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
|
bloodrose
一般會員 發表:8 回覆:9 積分:3 註冊:2003-10-27 發送簡訊給我 |
procedure TForm1.Button1Click(Sender: TObject);
var
myFile:file;
begin
try
Rewrite(myFile); // 语句一
form1.Caption := 'STATEMENT 2'; // 语句二
except
// on E:exception do;
end;
end; HAHALI:根据你所说的,我直接运行的。EXE,可是单击按钮BUTTON1后,FORM1的CAPTION并没有变化,也就是说语句二并没有执行;而关闭STOP ON DELPHI EXCEPTIONS,仍然是这个结果。 另:cashxin2002:如你所说,我在EXCEPT。。。END模块里面加上CONTINUE,可惜编译时提示如下错误:“Access violation at address 009B0430 in module 'dcc60.dll',Read of address 00000038”,该错误发生后,源单元出现只读情况。而在TRY 里面语句一后加CONTINUE,仍然出现如此错误。 BLOODROSE这个名字,很血腥吗? 發表人 - bloodrose 於 2003/11/28 13:54:59
|
hahalin
版主 發表:295 回覆:1698 積分:823 註冊:2002-04-14 發送簡訊給我 |
|
bloodrose
一般會員 發表:8 回覆:9 積分:3 註冊:2003-10-27 發送簡訊給我 |
|
shaofu
高階會員 發表:5 回覆:136 積分:103 註冊:2003-01-07 發送簡訊給我 |
|
bloodrose
一般會員 發表:8 回覆:9 積分:3 註冊:2003-10-27 發送簡訊給我 |
|
hahalin
版主 發表:295 回覆:1698 積分:823 註冊:2002-04-14 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |