post icon

Como Manejar Errores en Delphi

Siempre es fundamental manejar correctamente las excepciones dentro de nuestras aplicaciones, así nos será más fácil tener una consistencia de datos y roturas de la aplicación frente al usuarios final. Aquí en DevTroce ya hemos tocado este tema en distintos lenguajes e incluso en motores de bases de datos y ésta vez le toca el turno a Delphi, es bastante similar que el resto de los lenguajes, pero con algunas particularidades propias.

En Delphi tenemos disponible para nuestro uso 3 bloques: try, except y finally pero llamativamente sólo podemos utilizar 2 en un manejo de excepciones y en el cual obligatoriamente debe estar incluida la sentencia try. Veamos algunos ejemplos, en el primer caso tenemos el intento de ejecución de algún código y en caso de error es capturado por el bloque except y lo lanza en un mensaje emergente su descripción.

1
2
3
4
5
6
7
8
try
	// intento de ejecucion de algun codigo
except
	on E: Exception do
	begin
		ShowMessage(E.ClassName + ' Ocurrio un error : ' + E.Message);
	end;
end;

El segundo modo será con el intento una ejecución al final se haya producido o no una excepción, personalmente esta manera me parece inútil ya que con el bloque anterior obtenemos un manejo de error y todo lo que vaya debajo del end de except será un equivalente a un finally.

1
2
3
4
5
6
7
try
	// intento de ejecucion de algun codigo
finally 
	begin
		// ejecutamos algun codigo una vez finalizado
	end;
end;

En algunos casos mas complejos podríamos necesitar crear nuevas excepciones personalizas o provocarlas en algunas situaciones particulares o incluso simplemente queremos expandir la excepción a las clases u objetos superiores, eso lo hariamos del siguiente modo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
try
	// intento de ejecucion de algun codigo
except 
	begin
		Raise Error.Create('Error Personalizado');
	end;
end;
 
try
	// intento de ejecucion de algun codigo
	// si sucede algo provocamos aqui ya el error para capturarlo
	Raise Error.Create('Error Personalizado');
except 
	begin
		ShowMessage(E.ClassName + ' Ocurrio un error : ' + E.Message);
	end;
end;
9 marzo 2010

Comentarios desde Facebook:

Sin Comentarios aun, puedes tú ser el primero en comentar!

Deja tu Comentario

Responder