Fórum Mensagem do banco de dados #464644
20/12/2013
0
Olá pessoal,
Por exemplo, quando tento excluir uma tabela no BD que tenha relacionamento com outra tabela,
o BD me traz a mensagem de "chave primária da tabela XXX é referencia em outra tabela". Certo?
Vocês fazem algum tipo de tratamento para mostrar uma mensagem mais "fácil" para o usuário?
Se sim, esta validação é feita de forma genérica? ou em cada tela isso deve ser tratado?
Por exemplo, quando tento excluir uma tabela no BD que tenha relacionamento com outra tabela,
o BD me traz a mensagem de "chave primária da tabela XXX é referencia em outra tabela". Certo?
Vocês fazem algum tipo de tratamento para mostrar uma mensagem mais "fácil" para o usuário?
Se sim, esta validação é feita de forma genérica? ou em cada tela isso deve ser tratado?
Felipe Rosa
Curtir tópico
+ 0
Responder
Posts
23/12/2013
Perivaldo Martins
Você conhece ou usa o bloco Try Except?
Exemplo:
Apenas a título de exemplo.
Boa sorte e bons códigos!
Exemplo:
var
x,y,i:integer;
begin
x :=100;
y := 0;
try
x:= x div y; //Divisão por Zero gerará uma exceção
except
showmessage('Houve um erro ao tentar dividir x por y, pois y=0');
end;
end;
Apenas a título de exemplo.
Boa sorte e bons códigos!
Responder
Gostei + 0
25/12/2013
Joel Rodrigues
Existe uma forma de tratar as exceções de forma geral para toda a aplicação, utilizando um componente TApplicationEvents e tratando o evento OnException. Nele você pode identificar a exceção que ocorreu e mostrar uma mensagem mais amigável.
Na empresa onde trabalho, fizeram isso. Eles pegavam a mensagem original da exceção e, SE FOSSE MENSAGEM X, MOSTRAVAM MENSAGEM Y. Deu pra pegar a ideia?
É trabalhoso e "feio", mas... em último caso, dá pra fazer.
Outra possibilidade é tratar só o tipo de exceção, mas isso não lhe permite sempre exibir uma mensagem exata. Por exemplo, em toda EDivByZero, mostrar a mensagem "Erro de divisão por zero". Mas em exceções de bd, isso não seria muito claro.
Na empresa onde trabalho, fizeram isso. Eles pegavam a mensagem original da exceção e, SE FOSSE MENSAGEM X, MOSTRAVAM MENSAGEM Y. Deu pra pegar a ideia?
É trabalhoso e "feio", mas... em último caso, dá pra fazer.
Outra possibilidade é tratar só o tipo de exceção, mas isso não lhe permite sempre exibir uma mensagem exata. Por exemplo, em toda EDivByZero, mostrar a mensagem "Erro de divisão por zero". Mas em exceções de bd, isso não seria muito claro.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)