PDA

Ver la Versión Completa : manejo de excepciones try y except no funciona


gulder
09-11-2005, 17:41:58
hola otravez por aqui ...

esoy capturando la siguiente excepcion pero no me funciona


try
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(Edit1.Text);
ADOQuery1.Active:=true;
except on e: exception do
begin
ShowMessage('Error de sentencia'+e.Message);
end;
end;

supuestamente cuando escribo en el edit1 y no coresponde a ninguna consulta osea escribo mal las instrucciones deberia mostrarme el mensaje que coloque en la parte del except pero no es asi me sale uno que lo muestra delphi y se me traba la aplicacion no se porque no me funciona.

grasias de ante mano gulder........? :confused:

jachguate
09-11-2005, 18:16:30
El manejo de excepciones de delphi funciona correctamente, pero ADO (al menos su manejo desde delphi) está hecho con los pies, así que muchos errores simplemente no se convierten en una excepción. ADO procesará la condición de error, muestra el mensaje y listo!.

Para el buen programador de delphi, es un dolor de cabeza trabajar con estos componentes. Al menos lo fue para mi en su tiempo y doy gracias de haberme librado de ellos. :D

Hasta luego.

;)

gulder
09-11-2005, 18:29:52
grasias por tu comentario jachguate jejej hasta luego foro

ContraVeneno
09-11-2005, 20:12:55
Trata de buscar si existe alguna actualización de ADo para el delphi que estes utilizando, al menos para delphi 5 existen dos actualizaciónes de ADO...

en fin, trata lo siguiente a ver que te sale:

with AdoQuery1 do begin
if active then close;
SQL.Clear;
SQL.Add(edit1.text);
Try
Open;
Except on E:Exception do
showmessage(E.ClassName+' - '+E.message);
end; //Try
end; //with


La recomendación sería que no utilizaras E:Exception, ya que de esa manera estarías capturando todos los errores y siempre obtendrías el mismo error... alguien alguna vez dijo "podría haber una guerra nuclear y seguiría obteniendo el mismo mensaje". Y en esa parte el E.ClassName te puede ayudar....

gulder
10-11-2005, 14:50:00
grasias ContraVeneno voy a probar lo que mencionastes de las actualizaciones de los ado y el codigo que colocastes en el foro... jejeje