熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

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

2013-11-11 21:04:37  來源: Delphi編程 
異常的來源
  在Delphi的應用程序中下列的情況都比較有可能產生異常
  
  ()文件處理
  
  ()內存分配
  
  ()Windows資源
  
  ()運行時創建對象和窗體
  
  ()硬件和操作系統沖突
  
  二異常的處理
  ()try…except…end;
  
  在try體內的代碼發生異常時系統將轉向except部分進行異常的處理這是Delphi處理異常的最基本的方式之一
  
  ()try…finally…end;
  
  這種異常處理結構一般用於保護Windows的資源分配等方面它確保了無論try體內的代碼是否發生異常都需要由系統進行最後的統一處理的一些Windows對象的正確處理
  
  和try…except…end不同該結構的finally部分總被執行
  
  ()不存在try…except…finally…end結構來既處理異常又保護資源分配的結構但是try…except…end結構允許嵌套到try…finally…end結構中從而實現既處理異常又保護資源的分配
  
  三異常的精確處理
  ()定義一個異常
  
  在Delphi中每個異常都是Exception[]類的一個派生類[]因此定義一個異常就是定義一個Exception類的派生類
  
  type EMyException = class(Exception);
  
  當然基類可以是Exception或者Exception的任何一個任何層次的派生類
  
  ()在程序中拋出一個異常
  
  根據不同的情況拋出異常是使用異常的最基本的模式在Delphi中由raise語句來實現
  
  【語法】raise 異常類Create(異常的缺省說明);
  
  ()在try…except…end中更加精確的捕捉異常
  
  使用on E:異常類 do…結構可以在do體內處理特定異常類所拋出的異常
  
  四異常的調試
  在Delphi IDE中解除Debugger Options(可以使用菜單Tools—>Debugger Options…進行訪問)中的Integrated Debugging復選框的勾選狀態可以進行異常的調試
  
  五異常的補充說明
  ()每一段程序都有可能產生錯誤!這是軟件業的一個不容置疑的現象和規律事實上傳統的if…else…結構完全可以解決所有的錯誤使用Exception機制也沒能夠回避在最原始的層次通過遍歷可能的情況來產生異常的做法那麼為什麼還要異常機制?
  
  答案很清楚異常提供了一種更加靈活和開放的方式使得後來的編程者可以來根據實際的情況處理這種錯誤而不是使用預先設定好的處理結果
From:http://tw.wingwit.com/Article/program/Delphi/201311/8428.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.