delphi提示錯誤行號之Assert 斷言

2021-09-08 15:06:15 字數 956 閱讀 1954

一、用法:assert(表示式)

1.如果為假 assert會產生乙個eassertionfailed異常,顯示為 assertion failed (c:/src/unit1.pas, [size=+0]line 34)

2.如果不想再使用這些檢查時,可以使用($assertions off)或($c-)編譯指令

3.要想使assert在整個專案中失效, 關閉project options | compiler | assertion 選項。

二、delphi assert()函式的用法

assert(斷言)的作用是用來進行條件測試。可以計算表示式 expression ,如果其值為假(即為0),那麼它先向stderr列印一條出錯資訊,然後通過呼叫 abort 來終止程式執行。

缺點是,頻繁的呼叫會極大的影響程式的效能,增加額外的開銷。

三、用法總結與注意事項:

1)在函式開始處檢驗傳入引數的合法性

2)每個assert只檢驗乙個條件,因為同時檢驗多個條件時,如果斷言失敗,無法直觀的判斷是哪個條件失敗

3)不能使用改變環境的語句,因為assert只在debug個生效,如果這麼做,會使用程式在真正執行時遇到問題。

4)assert和後面的語句應空一行,以形成邏輯和視覺上的一致感

5)有的地assert不能代替條件過濾

四、程式例項

procedure tform1.button1click(sender: tobject);

begin

//引數1為false時提示,引數2為提示字元

assert(false,'這地方有錯!');

end;

delphi資訊框提示

1 警告資訊框 messagebox handle,警告資訊框 警告資訊框 mb iconwarning 2 疑問資訊框 messagebox handle,疑問資訊框 疑問資訊框 mb iconquestion 3 錯誤提示框 messagebox handle,錯誤資訊框 錯誤資訊框 mb ic...

Lua 錯誤提示

1 x 10 local i 1 while i x do local x i 2 print x i i 1 end提示錯誤 stdin 1 attempt to compare nil with number 這是怎麼回事呀?它的意思是你用數字跟nil值做了比較,自然得出了錯誤。另外,你貼的 我...

Delphi提示解決方法

h2365 override method form.createparams should match case of ancestor tcustomform.createparams 這是在重寫procedure createparams var params tcreateparams ov...