Manejo de errores y excepciones en aplicaciones de Delphi

Desafortunadamente, la creación de aplicaciones incluye codificación. Independientemente de cuán cuidadosamente escriba / depure su programa, será imposible imaginar cada situación que pueda salir mal. El usuario inexperto podría, por ejemplo, intentar abrir un archivo inexistente o ingresar un valor incorrecto en un campo de datos.
Los usuarios cometen errores y debemos estar preparados para manejar / prevenir estos errores donde sea y cuando sea posible.

Errores, excepciones?

Una excepción es generalmente una condición de error u otro evento que interrumpe el flujo normal de ejecución en una aplicación. Cada vez que se produce un error al procesar una línea de código, Delphi crea (eleva) un objeto descendiente de TObject llamado objeto de excepción.

Bloques guardados

Una aplicación responde a una excepción ejecutando algún código de terminación, manejando la excepción, o ambos. La forma de habilitar la captura de errores / excepciones dentro de un código dado, la excepción debe ocurrir dentro de un bloque de declaraciones protegido. El código general se ve así:

instagram viewer
tratar. {bloque de código protegido} excepto. en comenzar. {excepción bloque-maneja SomeException} final; final;

UN probar / excepto La instrucción ejecuta las declaraciones en el bloque de código protegido. Si las instrucciones se ejecutan sin que se generen excepciones, el bloque de excepciones se ignora y el control se pasa a la instrucción que sigue a la palabra clave end.

Ejemplo:

... Cero: = 0; tratar. ficticio: = 10 / cero; excepto. en EZeroDivide do. MessageDlg ('¡No se puede dividir por cero!', MtError, [mbOK], 0); final;... 

Protegiendo recursos

Cuando una sección de código adquiere un recurso, a menudo es necesario asegurarse de que el recurso se libere nuevamente (o puede obtener un pérdida de memoria), independientemente de si el código se completa normalmente o si es interrumpido por una excepción. En este caso, la sintaxis utiliza finalmente palabra clave y se parece a:

{algún código para asignar recursos} tratar. {bloque de código protegido} finalmente. {Bloque de terminación: código para liberar recursos} final;

Ejemplo:

... AboutBox: = TAboutBox. Crear (nulo); tratar. AboutBox. ShowModal; finalmente. AboutBox. Lanzamiento; final;... 

Solicitud. OnException

Si su aplicación no maneja el error que causó la excepción, entonces Delphi usará su controlador de excepciones predeterminado: solo aparecerá un cuadro de mensaje. Puede considerar escribir código en el evento OnException para el objeto TApplication, para atrapar errores a nivel de aplicación.

Romper en excepciones

Al crear un programa con manejo de excepciones, es posible que no desee que Delphi rompa las Excepciones. Esta es una gran característica si desea que Delphi muestre dónde ocurrió una excepción; sin embargo, puede ser molesto cuando prueba su propio manejo de excepciones.

Pocas palabras finales

La idea de este artículo es darle un vistazo rápido a las excepciones. Para mayor discusión sobre el manejo de excepciones, considere Sobre las excepciones de manejo en el manejo de excepciones de Delphi, usando una herramienta como Manejo de bloqueo / excepción de Delphi con informe de errores y algunos de los siguientes artículos relacionados:

instagram story viewer