DELPHI基础教程:异常处理和程序调试(1) [4]

生成资源保护块

Delphi最后提供了一个保留字来保护资源。

{分配资源}

尝试

{资源使用情况}

最后

{发布资源}

结束;

Try…finally…end形成资源保护块。无论程序是否异常,finally之后的语句在任何情况下都会被执行。

对于()中的示例,以下代码可以确保释放已分配的内存资源。

定义变量

APointer:指针;

AInt ADiv:Integer;

开始

ADiv:=;

GetMem(apo int)

尝试

AInt:= div ADiv;

最后

自由记忆

结束;

结束;

以下示例摘自()部分,用于实现文件复制中的文件资源保护。

过程复制文件(常量文件名DestName: TFileName)

定义变量

CopyBuffer:指针;

时间戳bytes copied:Longint;

Source Dest:整数;

目标:TFileName

常数

chunk size:Longint =;

开始

destination:= expand filename(DestName)

如果HasAttr(目的地目录),则

目的地:=目的地+ \ +提取文件名(文件名)

时间戳:=文件大小(文件名)

GetMem(CopyBuffer ChunkSize)

尝试

Source := FileOpen(文件名fmShareDenyWrite)

如果来源& lt然后

引发EFOpenError Create(FmtLoadStr(SFOpenError[文件名])

尝试

Dest := FileCreate(目的地)

如果Dest & lt然后

引发EFCreateError Create(FmtLoadStr(SFCreateError[Destination]))

尝试

重复

BytesCopied := FileRead(源CopyBuffer^块大小)

如果BytesCopied & gt然后

文件写入(目标CopyBuffer^字节复制)

直到BytesCopied & ltChunkSize

最后

文件关闭(目标)

结束;

最后

文件关闭(源)

结束;

最后

FreeMem(CopyBuffer ChunkSize)

结束;

结束;

有关该过程的详细说明,请参见第()节。

在异常保护的情况下,当发生异常时,系统会自动弹出消息框显示异常的消息,退出当前模块后会自动清除异常类。

返回目录DELPHI基础教程

编辑推荐

Java编程培训视频教程

J EE高级框架实战训练视频教程

Visual C++音视频技术的发展与实战

Oracle索引技术

ORACLE G数据库开发优化指南

Java程序的性能优化让你的Java程序更快更稳定。

c嵌入式编程设计模式

Android游戏开发实用指南

Lishi Xinzhi/Article/program/Delphi/201311/25194