Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   uso del try (https://www.clubdelphi.com/foros/showthread.php?t=9287)

cmena 20-04-2004 00:49:36

uso del try
 
Amigos la funcion try opera con todos los errores de ejecucion ?
sucede que puse try antes de un error de despliege de datos y no
salta al except(error9).
este es el caso
gracias


if dmBasedatos.tbkcli903.FindKey( [lv_rut] ) then
begin
try
ShowMessage(dmBasedatos.tbkcli903['b_atc903']);
except
ShowMessage('error9')
end;

nefy 20-04-2004 01:16:58

No entiendo tu logica podrias explicarlo con pseudocodigo o en tus palabras q quieres q haga el codigo?

cmena 20-04-2004 01:27:45

try
 
Cita:

Empezado por nefy
No entiendo tu logica podrias explicarlo con pseudocodigo o en tus palabras q quieres q haga el codigo?

al deplegar el mensaje la aplicacion se cae al venir el atributo en blanco
por lo tanto emplee un try para saltar el error

try
despliego datos (aqui se produce el error de dato invalido)
except
envio mensaje de error

mi pregunta es por que no salta al parrafo de except

nefy 20-04-2004 01:34:05

Deja ver si te entendi. Quieres q si no se encuentra el registro se despliegue un mensaje de error para comunicar al usuario q el registro no existe?

jachguate 20-04-2004 04:01:37

la ejecución del programa saltará a la clausula except siempre que algo eleve una excepción (algo de lo que se ejecuta después de try y antes de except). Hay bibliotecas que están programadas al muy antiguo estilo (o muy mal programadas) y devuelven códigos de error o informan ellas mismas al usuario.

El ShowMessage en raras ocasiones elevará una excepción... quizas solo por falta de recursos.

la expresión dmBasedatos.tbkcli903['b_atc903'] no tengo idea si eleve una excepción, pues no tengo idea de que se trate.

Hasta luego.

;)

cmena 20-04-2004 17:09:11

Te explico, el error se produce al usar el showmessage, por lo tanto intento con el try
para que salte el error y no caiga la aplicacion, pero la aplicacion se sigue cayendo,
mi pregunta es por que no funciona el try?
gracias

dmBasedatos.tbkcli903.FindKey( [lv_rut] ) then
begin
try
ShowMessage(dmBasedatos.tbkcli903['b_atc903']);
except
ShowMessage('error9')
end;

cmena 20-04-2004 17:10:47

Te explico, el error se produce al usar el showmessage, por lo tanto intento con el try
para que salte el error y no caiga la aplicacion, pero la aplicacion se sigue cayendo,
mi pregunta es por que no funciona el try?
gracias

dmBasedatos.tbkcli903.FindKey( [lv_rut] ) then
begin
try
ShowMessage(dmBasedatos.tbkcli903['b_atc903']);
except
ShowMessage('error9')
end;

nefy 20-04-2004 17:16:14

Q mensaje te envia al "caerse" la aplicacion?. Y que es dmBasedatos.tbkcli903['b_atc903'])?.

roman 20-04-2004 17:30:42

Cita:

Empezado por nefy
Y que es dmBasedatos.tbkcli903['b_atc903'])?.

dmBasedatos.tbkcli903 es una tabla, al menos a juzgar por la llamada anterior a FindKey. Si este error es el mismo que le da problemas en el hilo http://www.clubdelphi.com/foros/showthread.php?t=9286 entonces creo que lo qe allá le respondo es lo que necesita.

// Saludos

nefy 20-04-2004 17:35:34

Y bien Cmena tu q dices?. Es lo q te menciona Roman o q?

cmena 20-04-2004 19:44:13

el error es "invalid variant type conversion" dmbasedatos es el datamodule, el tbcli903 es la tabla y el b_atc903 es el atributo (tipo caracter de largo 15) este cuando viene en blanco showmesagge se cae
gracias

nefy 20-04-2004 19:51:21

Mira cmena yo ya probe el codigo y si salta al except Algo tienes mal en tu codigo no podrias poner el procedimiento completo o de menos unas lineas hacia arriba y otras hacia abajo?

roman 20-04-2004 19:59:01

Cita:

Empezado por cmena
el error es "invalid variant type conversion" dmbasedatos es el datamodule, el tbcli903 es la tabla y el b_atc903 es el atributo (tipo caracter de largo 15) este cuando viene en blanco showmesagge se cae
gracias

Pregunta: ¿este problema tiene que ver con el hilo que te menciono? Y en tal caso, ya probaste lo que ahí te digo?

// Saludos


La franja horaria es GMT +2. Ahora son las 20:28:01.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi