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