No me sale el manejo de excepciones
Hola a todos:
Tengo el siguiente problemita, en realidad nunca he usado las excepciones en algún problema en delphi y necesito de su ayuda: ya he buscado en los foro, leido el libro de Ian Marteens y entendi pero no me sale Mi duda es la siguiente: Tengo un campo en la tabla Empleados en donde se almacena la ubicación de la imagen del empleado. Con el siguiente código muestro la imagen del empleado en caso de que exista el registro en la base de datos: Código Delphi [-] if not (Datamodule1.QueryGenerico.Fields[13].AsString = '') then begin FrmEmpleadosD.Imagen.Visible:=true; FrmEmpleadosD.Imagen.Picture.LoadFromFile(Datamodule1.QueryGenerico.FieldValues['img_empleados']); end; Pero por si alguna razón la imagen es borrada, eliminada, etc. Al ejecutar el programa muestra un error : Código:
exception class EFOpenError with message ‘Cannot open file “C:imágenes\empleado12.jpg”’. Estoy usando Delphi 7 y Access y la conecto mendiante ADO. Gracias de antemano por ayudarme. :D |
Buenas!
Ten en cuenta que si estás ejecutando el programa desde el IDE te va a saltar la excepción como si no estuviera controlada, prueba ejecutando directamente el exe fuera del IDE y verás el comportamiento exacto. En principio el manejo de excepciones deberá ser:
Un saludo Edu |
Vayamos por partes:
Lo primero es definir nuestras propias excepciones, a mí me gusta hacerlo para cada proyecto: Esto lo ponemos en alguna unidad que se use en todo el proyecto, para tenerla a mano. Cuando queremos lanzar una Excepción usamos:
Para el caso concreto, entre otras formas, podemos hacerlo así:
Como sabes, al producirse una excepción se corta la ejecución del programa justo en la línea "raise ..." por tanto, en el caso de que no se encuentre la imagen, no se hará visible el TImage. Cuando el archivo se encuentre, pues se obvia las lineas del manejo de excepciones y despues sí se hará visible. Si te fijas en el mensaje de la excepción, no digo que no se ha encontrado la imagen, sino que no puede cargarse. El método LoadFromFile puede que lance un error de "formato de imagen no válida" en lugar del tipico "no se encuentra el archivo". Saludos. |
Ya salio
Gracias Lepe y Edu ambas respuestas me aclararon mucho este asunto sobre las excepciones y pos ya le entendi completamente al manejo de excepciones gracias a Lepe, y sin tu comentario Edu habria seguido frustrado pensando en que no salia jajaja
Saludos desde El bello puerto de Veracruz!!! :) |
La franja horaria es GMT +2. Ahora son las 01:43:21. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi