當前位置:編程學習大全網 - 編程語言 - DELPHI基礎教程:異常處理與程序調試(壹)[4]

DELPHI基礎教程:異常處理與程序調試(壹)[4]

  產生壹個資源保護塊

 Delphi提供了壹個保留字finally 用於實現資源的保護

 {分配資源}

 try

 {資源使用情況}

 finally

 {釋放資源}

 end;

 try…finally…end就形成了壹個資源保護塊 finally後面的語句是在任何情況下 不論程序是否發生異常 都會執行的

 對於( )中的例子如下代碼即可確保所分配內存資源的釋放

 var

 APointer : Pointer ;

 AInt ADiv : Integer;

 begin

 ADiv := ;

 GetMem ( APointer )

 try

 AInt := div ADiv ;

 finally

 FreeMem ( Apointer )

 end;

 end;

 下面的例子摘自( )節 是在文件拷貝中實現文件資源的保護

 procedure CopyFile(const FileName DestName: TFileName)

 var

 CopyBuffer: Pointer;

 TimeStamp BytesCopied: Longint;

 Source Dest: Integer;

 Destination: TFileName;

 const

 ChunkSize: Longint = ;

 begin

 Destination := ExpandFileName(DestName)

 if HasAttr(Destination faDirectory) then

 Destination := Destination + \ + ExtractFileName(FileName)

 TimeStamp := FileAge(FileName)

 GetMem(CopyBuffer ChunkSize)

 try

 Source := FileOpen(FileName fmShareDenyWrite)

 if Source < then

 raise EFOpenError Create(FmtLoadStr(SFOpenError [FileName]))

 try

 Dest := FileCreate(Destination)

 if Dest < then

 raise EFCreateError Create(FmtLoadStr(SFCreateError [Destination]))

 try

 repeat

 BytesCopied := FileRead(Source CopyBuffer^ ChunkSize)

 if BytesCopied > then

 FileWrite(Dest CopyBuffer^ BytesCopied)

 until BytesCopied < ChunkSize;

 finally

 FileClose(Dest)

 end;

 finally

 FileClose(Source)

 end;

 finally

 FreeMem(CopyBuffer ChunkSize)

 end;

 end;

 程序的具體解釋見 ( )節

 在異常保護的情況下 當異常發生時 系統會自動彈出壹個消息框用於顯示異常的消息 退出當前模塊後異常類自動清除

  返回目錄 DELPHI基礎教程

? 編輯推薦

? Java程序設計培訓視頻教程

? J EE高級框架實戰培訓視頻教程

 Visual C++音頻/視頻技術開發與實戰

 Oracle索引技術

 ORACLE G數據庫開發優化指南

 Java程序性能優化 讓妳的Java程序更快 更穩定

 C嵌入式編程設計模式

 Android遊戲開發實踐指南

lishixinzhi/Article/program/Delphi/201311/25194

  • 上一篇:綠蟲子的編程語言有哪些?
  • 下一篇:現金流量表的公式是什麽?
  • copyright 2024編程學習大全網