Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Maneja de errores (try except) (https://www.clubdelphi.com/foros/showthread.php?t=38739)

brookly_n 26-12-2006 19:57:40

Maneja de errores (try except)
 
HOla a todos,

En una aplicacion lo que quiero es que si al intentar abrir un archivo de texto este no existe, se capture el error que se genera y mostrar uno personalizado. He intentado con el siguiente ejemplo:

Código Delphi [-]
  try
    AssignFile(fIN,nombreArchivo);
    reset(fIN);
    showmessage('Archivo abierto de manera correcta');
    closeFile(fIN);
  except
    showmessage('ERROR: Se produjo un error al intentar abir el archivo');
  end;

pero no funciona, pues cuando le pongo un archivo que no existe, me sigue saltando el error por defecto de File Not Found y no sale el showmessage.

Alguna idea de que puede estar pasando?

GRacias a todos!

luisgutierrezb 26-12-2006 20:19:40

cuando trabajas con el ide abierto, te genera la excepcion por default, y despues salta lo que tengas en el except

brookly_n 26-12-2006 20:40:01

fuahhh......es como si me lo hubieras dicho en chino....:eek: .....y sin resumir tanto.....que me intentas explicar?....que me dices que debo hacer?? :confused:

gracias por tu ayuda!

roman 26-12-2006 22:12:23

A lo que se refiere Luis es que si ejecutas la aplicación desde el IDE, cuando ocurre una excepción, primero aparece el mensaje original ('File not found' en este caso) y luego el que tu pongas en la parte except. Si ejecutas la aplicación fuera del IDE, sólo verás el mensaje que tú colocaste.

Ahora bien, puedes evitar que el IDE muestre el mensaje original si vas al menú Tools|Debugger Options, escoges la pestaña "Language Exceptions" y desmarcas la casilla "Stop on Delphi Exceptions".

// Saludos

Robert01 26-12-2006 22:23:05

puedes usar la función fileexists

Código Delphi [-]

var
nombre_archivo : string;

if not FileExists(' nombre_archivo') then begin
 ShowMessage( nombre_archivo +#13#10 +
              + #13#10 + '¡no existe!');
 exit;
end;

brookly_n 27-12-2006 10:51:03

aha!, aclarado :o , muchas gracias a los dos por vuestra ayuda

gracias!


La franja horaria es GMT +2. Ahora son las 00:34:53.

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