一、異常的**。 在
delphi
的應用程式中,下列的情況都比較有可能產生異常。 (
1)檔案處理 (
2)記憶體分配 (
3)
windows資源
(4
)執行時建立物件和窗體 (
5)硬體和作業系統衝突 ?
二、異常的處理。 (
1)try…except…end; 在
try體內的**發生異常時,系統將轉向
except
部分進行異常的處理。這是
delphi
處理異常的最基本的方式之一。 ?
(2
)try…finally…end;
這種異常處理結構一般用於保護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
中更加精確的捕捉異常。
使用one:
異常類do…
結構可以在
do體內處理特定異常類所丟擲的異常。 ?
四、異常的除錯。 在
delphi ide
中,解除「
debugger options
」(可以使用選單
tools
—>debugger options…
進行訪問)中的
integrated debugging
核取方塊的勾選狀態可以進行異常的除錯。 ?
五、異常的補充說明。 (
1)每一段程式都有可能產生錯誤!這是軟體業的乙個不容置疑的現象和規律。事實上,傳統的
if…else…
結構完全可以解決所有的錯誤,使用
exception
機制也沒能夠迴避在最原始的層次,通過遍歷可能的情況來產生異常的做法,那麼,為什麼還要異常機制?
答案很清楚:異常提供了一種更加靈活和開放的方式,使得後來的程式設計者可以來根據實際的情況處理這種錯誤,而不是使用預先設定好的處理結果。實際上,我覺得,這也就是異常機制的核心。
[1]
exception
類的定義在
sysutils
單元中。
[2]
delphi
也支援不從
exception
繼承的異常類,但是我覺得這麼做並不十分的明智。
Delphi異常處理的基本原則和方法
delphi異常處理的基本原則和方法 一 異常的 在delphi的應用程式中,下列的情況都比較有可能產生異常。1 檔案處理 2 記憶體分配 3 windows資源 4 執行時建立物件和窗體 5 硬體和作業系統衝突 二 異常的處理。1 try except end 在try體內的 發生異常時,系統將轉...
Delphi異常處理的基本原則和方法
一 異常的 在delphi的應用程式中,下列的情況都比較有可能產生異常。1 檔案處理 2 記憶體分配 3 windows資源 4 執行時建立物件和窗體 5 硬體和作業系統衝突 二 異常的處理。1 try except end 在try體內的 發生異常時,系統將轉向except部分進行異常的處理。這是...
超越基本原則
techtarget中國 techtarget中國原創 因為持續要求減少it成本,dba們不能再被看作是主要的成本負擔。相反,dba們必須努力於被公司認可和證明他們的價值。本篇文章將集中講述兩方面內容 你作為乙個dba需要具有的技術 硬 技能和非技術 軟 技能。我還會提供建議關於怎樣同管理層打交道和...