何處可以查到有哪些exception? |
缺席
|
johnnychang
一般會員 發表:24 回覆:26 積分:16 註冊:2002-09-27 發送簡訊給我 |
|
kunying
一般會員 發表:17 回覆:28 積分:19 註冊:2002-03-14 發送簡訊給我 |
根據 深入淺出delphi 4 Unleashed Delphi例外處理的基礎類別,宣告於SysUtils.pas:
Exception = class(TObject)
private
FMessage: string;
FHelpContext: Integer;
public
constructor Create(const Msg: string);
...........
...........
EIntError = class(Exception);
EDivByZero = class(EIntError);
ERangeError = class(EIntError);
EIntOverflow = class(EIntError);
EMathError = class(Exception);
EInvalidOp = class(EMathError);
EZeroDivide = class(EMathError);
EOverflow = class(EMathError);
EUnderflow = class(EMathError);
EInvalidPointer = class(Exception);
EInvalidCast = class(Exception);
EConvertError = class(Exception);
EAccessViolation = class(Exception);
EPrivilege = class(Exception);
EStackOverflow = class(Exception);
EControlC = class(Exception);
EVariantError = class(Exception);
EPropReadOnly = class(Exception);
EPropWriteOnly = class(Exception);
你可以看到除以0的錯誤、檔案I/O錯誤、無效型別轉換的錯誤,以及各種常見或罕見的情況。 不過,這只是冰山一角。VCL其他模組還宣告了許多其他的例外類別。想要知道它們完整的範圍,你應該使用線上輔助,或瀏覽Include/VCL目錄下的來源檔。 ---------------- 以上。希望對您有所幫助。 ________________________
「有時候你以為天要塌下來了,其實是因為你站歪了!」
------
________________________ 「有時候你以為天要塌下來了,其實是因為你站歪了!」 |
懷舊的人
高階會員 發表:28 回覆:152 積分:141 註冊:2003-01-08 發送簡訊給我 |
|
johnnychang
一般會員 發表:24 回覆:26 積分:16 註冊:2002-09-27 發送簡訊給我 |
謝謝kunying及懷舊的人. 還有一個問題. sysutils宣告了system的exception, 而其他的exception如何得知在何處宣告? 比如說:
進行除法時, 可能引起EZeroDivide, EDivByZero...;==>如何知道進行除法時會引起哪些Exception?
加法可能引起EOverFlow, EIntOverFlow...; ==> 如何知道進行加法時會引起哪些Exception?
用TStringList.LoadFromFile來讀一個文字檔時可能引起哪些Exception?(如檔案不存在, 檔案無法開啟....) 我用TADOConnection.Open方式來連線一個Access檔時, 想處理檔案不存在的例外處理. 可是不知道會是哪一個Exception. 等Try&Error之後, 得知會引起EOleException, 而它在ComObj中宣告. ==>當使用ADO的Function時會引起哪些Exception(如檔案不存在, 檔案毀損無法開啟, 檔案被其他軟體鎖住無法開啟....)? 像這些, 需要參考哪些文件或書籍, 或有什麼線索可以追查?
|
懷舊的人
高階會員 發表:28 回覆:152 積分:141 註冊:2003-01-08 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |