Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

fezinha

Mensagens de exceções

Recommended Posts

Pessoal,

 

Preciso da ajuda de vocês.

 

Criei várias triggers no meu banco de dados Firebird.

Essas triggers chamam algumas exceptions.

 

No Delphi, utilizei o try ... except no momento de execução dessas triggers.

 

Quando a exceção é lançada, exibe uma mensagem assim:

General SQL error. exception <nome da exceção> 'texto da exceção' at trigger <nome da trigger>.

 

Isso quer dizer que a trigger está funcionando, mas eu gostaria de saber se tem alguma maneira de só

mostrar para o usuário o TEXTO DA EXCEÇÃO, e não toda a mensagem de erro.

 

Aguém tem a solução?

 

Obrigada,

 

Fernanda

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tentou configurar o seu try except para formatar a mensagem que deseja? Algo do tipo....

 

try
		  Query.Execute;
	  except
		 on e: exception do //Se for uma exception, entra aqui, onde poderia fazer seu tratamento para a mensagem
			showmessage(e.message);
	  end;

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, eu já tinha pensado em tratar a mensagem que o E.Message retorna e pegar só o texto que eu quero.

Mas eu queria saber se não tem uma forma melhor para fazer isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A única alternativa que poderia bolar talvez seria por em uma unit todos os erros possíveis de retorno de erro e jogar o erro retornado para dentro dela e lá tratar a mensagem para exibir da forma que achar melhor... Exceptions só com o try except você vai conseguir controlar mesmo, agora a formatação das mensagens vai do seu critério para montar. No trampo, nós faziamos algo assim para capturar exceptions de SPs.

 

 try
    Query.Execute;
except
    on e: exception do //Se for uma exception, entra aqui, onde poderia fazer seu tratamento para a mensagem
    showmessage('Ocorreu um erro na Stored Procedure XXXXX. ' + #13 + e.message + #13
                'Contate o suporte técnico, informando o erro apresentado.');
end;

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.