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; |
Articulos Relacionados:









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