Red de conocimiento informático - Computadora portátil - Tutorial básico de DELPHI: Manejo de excepciones y depuración de programas (I)[4]

Tutorial básico de DELPHI: Manejo de excepciones y depuración de programas (I)[4]

Generar bloque de protección de recursos

Delphi proporciona la palabra reservada finalmente para protección de recursos

{Asignar recursos}

probar

{uso de recursos}

finalmente

prueba

{uso de recursos}

final;

intentar

{uso de recursos}

finalizar

{liberación de recursos}

finalizar

p>

intentar....finalmente...end crea un bloque de protección de recursos.

Independientemente de si ocurre una excepción en el programa, la declaración posterior a finalmente se ejecutará en cualquier caso.

Para el ejemplo en (), funciona de la siguiente manera. Este código garantiza que se libere la memoria asignada.

var

APointer: puntero

AInt ADiv: entero

inicio

ADiv:=; p>

GetMem (APointer)

prueba

AInt := div ADiv

Finalmente

FreeMem (Apointer)

Fin;

Fin;

El siguiente ejemplo está tomado de la sección () y es un ejemplo de cómo proteger los recursos de un archivo para que no se copien en un archivo.

Procedimiento CopyFile(const FileName DestName: TFileName)

var

CopyBuffer: Puntero

TimeStamp BytesCopied: Longint; > Destino de origen: fin;

El siguiente ejemplo está extraído de la sección ( ), que implementa la protección de recursos de archivos durante la copia de archivos

Destino de origen: Integer; > Destino: TFileName

const

ChunkSize: Longint =

comenzar

Destino: = ExpandFileName(DestName)

si HasAttr(Destino faDirectory) entonces

Destino := Destino \ ExtractFileName(Nombre de archivo)

TimeStamp := FileAge(Nombre de archivo)

GetMem( CopyBuffer ChunkSize)

p>

intente

Fuente := FileOpen(FileName fmShareDenyWrite)

si Fuente lt entonces

aumente EFOpenError Create(FmtLoadStr(SFOpenError; [Nombre de archivo]))

intente

Destino := FileCreate(Destino)

if Destino := FileCreate(FmShareDenyWrite)

intente

if Dest := FileCreate(FileName fmShareDenyWrite)

if Dest lt; entonces

rise EFCreateError Create(FmtLoadStr (SFCreateError [Destino]))

intentar

p>

repetir

BytesCopied := FileRead(Fuente

CopyBuffer^ ChunkSize)

si BytesCopied gt; entonces

FileWrite(Dest CopyBuffer^ BytesCopied)

Hasta BytesCopied lt; Finalmente

FileClose(Dest)

Fin

Finalmente

FileClose(Fuente)

Fin; /p>

Finalmente

FreeMem (CopyBuffer ChunkSize)

Fin

Fin

Descripción detallada del programa, Consulte la Sección ( )

A través de la protección de excepciones, cuando ocurre una excepción, el sistema abrirá automáticamente un cuadro de mensaje y mostrará el mensaje de excepción Salir. Después de salir del módulo actual, la clase de excepción se borrará automáticamente

Volver al directorio Tutorial básico de DELPHI

¿Recomendación del editor? Video tutorial de capacitación en programación Java.

?J EE Advanced Framework Training Video Tutorial

Desarrollo y práctica de tecnología de audio y vídeo Visual C

Tecnología Oracle Index

ORACLE G Guía de optimización del desarrollo de bases de datos

p>

La optimización del rendimiento del programa Java hace que su programa Java sea más rápido y estable

Patrón de diseño de programación integrado en C

Guía práctica de desarrollo de juegos para Android lishixinzhi /Artículo/programa/Delphi /201311/25194