麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Delphi > 正文

Delphi異常處理的基本原則和方法

2019-11-18 18:16:03
字體:
來源:轉載
供稿:網友

一、異常的來源。

Delphi的應用程序中,下列的情況都比較有可能產生異常。

1)文件處理

2)內存分配

3Windows資源

4)運行時創建對象和窗體

5)硬件和操作系統沖突

?

二、異常的處理。

1tryexceptend;

try體內的代碼發生異常時,系統將轉向except部分進行異常的處理。這是Delphi處理異常的最基本的方式之一。

?

2tryfinallyend;

這種異常處理結構一般用于保護Windows的資源分配等方面,它確保了無論try體內的代碼是否發生異常,都需要由系統進行最后的統一處理的一些Windows對象的正確處理。

try…except…end不同,該結構的finally部分總被執行。

?

3)不存在try…except…finally…end結構來既處理異常,又保護資源分配的結構,但是,try…except…end結構允許嵌套到try…finally…end結構中,從而實現既處理異常,又保護資源的分配。

?

?

三、異常的精確處理。

1)定義一個異常。

Delphi中,每個異常都是Exception[1]類的一個派生類[2]。因此,定義一個異常就是定義一個Exception類的派生類。

type EMyException = class(Exception);

當然,基類可以是Exception或者Exception的任何一個任何層次的派生類。

?

2)在程序中拋出一個異常。

根據不同的情況拋出異常是使用異常的最基本的模式。在Delphi中,由raise語句來實現。

【語法】raise 異常類.Create(‘異常的缺省說明’);

?

3)在try…except…end中更加精確的捕捉異常。

使用on E:異常類 do結構可以在do體內處理特定異常類所拋出的異常。

?

四、異常的調試。

Delphi IDE中,解除“Debugger Options”(可以使用菜單Tools>Debugger Options…進行訪問)中的Integrated Debugging復選框的勾選狀態可以進行異常的調試。

?

五、異常的補充說明。

1)每一段程序都有可能產生錯誤!這是軟件業的一個不容置疑的現象和規律。事實上,傳統的if…else…結構完全可以解決所有的錯誤,使用Exception機制也沒能夠回避在最原始的層次,通過遍歷可能的情況來產生異常的做法,那么,為什么還要異常機制?

答案很清楚:異常提供了一種更加靈活和開放的方式,使得后來的編程者可以來根據實際的情況處理這種錯誤,而不是使用預先設定好的處理結果。實際上,我覺得,這也就是異常機制的核心。



[1] Exception類的定義在SysUtils單元中。

[2] Delphi也支持不從Exception繼承的異常類,但是我覺得這么做并不十分的明智。


上一篇:Delphi的撥號連接類

下一篇:在delphi字符中包括單引號(')

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 成人精品免费看 | 蜜桃成品人免费视频 | 日韩黄色影视 | 精品一区二区在线观看视频 | 国产精品美女久久久免费 | 成人精品久久久 | 精品一区在线视频 | 欧美一级片网站 | 97色在线观看免费视频 | 国产亚洲在线 | 久久恋| 天堂成人国产精品一区 | 国产精品午夜性视频 | 中文字幕免费一区 | 精品国产一区二区三区久久久蜜 | 国产韩国精品一区二区三区久久 | 福利一区二区三区视频在线观看 | 精品中文字幕在线播放 | 精品一区二区三区欧美 | 亚洲一级电影在线观看 | 男女做性免费网站 | 九九精品在线观看视频 | 中文字幕国产日韩 | 九九精品在线 | fc2国产成人免费视频 | 日产精品一区二区三区在线观看 | 久久久精品综合 | www.91sese| 免费国产在线观看 | 激情亚洲一区二区三区 | 在线免费观看日韩视频 | 日本在线不卡一区二区三区 | 欧美18—19sex性hd按摩 | 亚洲成人在线视频网站 | 国产精品久久久久久久不卡 | 亚洲欧美成aⅴ人在线观看 免费看欧美黑人毛片 | 3级毛片| 99精品视频免费 | 操碰视频在线观看 | 午夜精品小视频 | 91精品国产综合久久久欧美 |