Programación en Delphi/Manejo de Excepciones

El manejo de excepciones en Delphi no varía mucho de los demás lenguajes de Hoy en día y su siguiente estructura es la siguiente.

 TRY
 	{Bloque de instrucciones}
 EXCEPT
 	ON Exception DO
 	BEGIN
 	{Bloque de Instrucciones}
 	END;
 END; {Fin del Try}

Este bloque captura captura errores de manera genérica, pero también se puede diseñar bloques de excepciones con indicaciones más específicas.

Por ejemplo del Bloque anterior se pueden puede cambiar de la siguiente manera para que solo intente el Try-Except con errores específicos.

 TRY
 	{Bloque de instrucciones};
 EXCEPT
 	ON <TipoException1> DO
 	BEGIN
 		{Bloque de Instrucciones};
 	END;
 	ON <TipoException2> DO
 	BEGIN
 		{Bloque de Instrucciones};
 	END;
 	ON <TipoException3> DO
 	BEGIN
 		{Bloque de Instrucciones};
 	END;
 
 END;{Fin del Try}

En Tipo de Excepciones tenemos las siguientes:

EAbort: Finaliza la secuencia de eventos sin mostrar el mensaje de error.

EAccessViolation: Comprueba errores de acceso a memoria inválidos.

EBitsError: Previene intentos para acceder a arrays de elementos booleanos.

EComponentError: Nos informa de un intento inválido de registrar o renombrar un componente.

EConvertError: Muestra un error al convertir objetos o cadenas de texto string.

EDatabaseError: Especifica un error de acceso a bases de datos.

EDBEditError: Error al introducir datos incompatibles con una máscara de texto.

EDivByZero: Errores de división por cero.

EExternalException: Significa que no reconoce el tipo de excepción (viene de fuera).

EIntOutError: Representa un error de entrada/salida a archivos.

EIntOverflow: Especifica que se ha provocado un desbordamiento de un tipo de dato.

EInvalidCast: Comprueba un error de conversión de tipos.

EInvalidGraphic: Indica un intento de trabajar con gráficos que tienen un formato desconocido.

EInvalidOperation: Ocurre cuando se ha intentado realizar una operación inválida sobre un componente.

EInvalidPointer: Se produce en operaciones con punteros inválidos.

EMenuError: Controla todos los errores relacionados con componentes de menú.

EOleCtrlError: Detecta problemas con controles ActiveX.

EOleError: Especifica errores de automatización de objetos OLE.

EPrinterError: Errores al imprimir.

ERangeError: Indica si se intenta asignar un número entero demasiado grande a una propiedad.

ERegistryExcepcion: Controla los errores en el registro.

EZeroDivide: Controla los errores de división para valores reales.