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. p>
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])) p>
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