Fórum Problema com exception #48962

19/01/2005

0

Boa tarde, pessoal.

Por que ao disparar um gatilho com delphi a mensagem do delphi vem acompanhada com a palavra [color=red:09769e87b6]´Exception 1´[/color:09769e87b6].

Ex. Tenho um gatilho que verifica se uma determinada fita de vídeo está disponível no acervo.

Mensagem original do gatilho: ´[color=red:09769e87b6]Vídeo não disponível no acervo.[/color:09769e87b6]´.

A mensagem fica assim: ´[color=red:09769e87b6]Exception 1 Vídeo não disponível no acervo.[/color:09769e87b6]´.

Alguém sabe como contornar esse problema?

Obrigado.


Imoreira

Imoreira

Responder

Posts

20/01/2005

Fsflorencio

Exception 1 deve ser o nome da exceção criada por você no banco.
Você pode utilizar um componente TApplicationEvents para contornar esta situação.
No evento OnException você pode tratar a Variável [b:f72997971c]E[/b:f72997971c] dando uma mensagem mais amistosa, mas para isto vc deverá marcar o início de suas mensagens de erro com algum caracter. No exemplo vou usar ´:´;

Ex.

begin
//Todo e qualquer tipo de exceção vai passar por aqui

if Pos( [i:f72997971c][b:f72997971c]´:´[/b:f72997971c][/i:f72997971c], E.Message ) > 0 then
begin
MessageDlg( Copy( E.Message, Pos( [b:f72997971c]´:´[/b:f72997971c], E.Message ) + 1, Length(E.Message) ), MtWarning, [mbok], 0 );
end

//E.Message é a mensagem que o banco vai retornar
//No exemplo, mandei copiar a mensagem de erro da posição do [b:f72997971c]:[/b:f72997971c] para frente
end


Responder

Gostei + 0

20/01/2005

Imoreira

Caro fsflorencio.

exception 1 [color=red:7547df4b29]não[/color:7547df4b29] foi o nome dados para a minha exceção.
Mas de qualquer modo vou testar a sua dica.

valeu.


Responder

Gostei + 0

07/07/2006

Marcos Fernando

Valeu galera pela força agora deu Beleza,
ficou assim:

var msg : pansichar;
begin
try
SCREEN.Cursor := crHourGlass;
IBTable1.Delete;
SCREEN.Cursor := crdefault;
except
on E: Exception do begin
if Pos( #13, E.Message ) > 0 then
begin
msg := pchar(´Ocorreu o segunte erro: ´+13+Copy( E.Message, Pos(13, E.Message ) + 1, Length(E.Message)));
SCREEN.Cursor := crdefault;
Application.MessageBox(msg,PChar(application.title),
mb_DefButton2+mb_IconError+mb_TaskModal);
end;
end;
end;
end;


Thanks


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar