Fórum Try Except com on E: Exception do #468487
30/01/2014
0
Except
on E: Exception do
ShowMessage(''Erro: '' + E.Message );
end;
Quando coloco no except o comando para pegar a mensagem de erro não consigo colocar mais nada abaixo desse comando, exemplo:
Try
Except
on E: Exception do
ShowMessage(''Erro: '' + E.Message );
Close;
end;
colocando um Close por exemplo dá erro e não compila. Mas posso colocar qualquer coisa e não compila, pois além de informar o erro gerado quero executar alguns procedimentos após a mensagem.
Como faço para resolver isto?
Leandro Carvalho
Curtir tópico
+ 0Posts
30/01/2014
Marco Salles
Try
Except
on E: Exception do
begin
ShowMessage(''Erro: '' + E.Message );
Close;
end;
end;
[]sds
Gostei + 0
31/01/2014
Leandro Carvalho
Simples, é que todos os exemplos que eu vi não explicava dessa forma.
Gostei + 0
03/05/2022
Mário Reis
Depois de ter afirmado que não fazia, afinal lembrei-me. Há muito tempo mesmo que nãpo mexia nisto, porque em tempo fiera uma função genérica que cobria as minhas necessidades mais importantes(IBX)
Penitenciando-me, deixo aqui uma ideia de como como fazer no FireDAC (claro que pode ser melhorado, quem o fizer por favor partilhe.):
procedure TForm2.FdQryPrd1PostError(DataSet: TDataSet; E: EDatabaseError ;
var Action: TDataAction);
begin
// FireDAC EFDException = class(EDatabaseError)
// unit IBX.IB; EIBError = class(EDatabaseError)
if (E is EFDDBEngineException) then
begin
case EFDDBEngineException(E).Kind of
ekOther: ShowMesssage('Erro não definido!');
ekNoDataFound: ShowMessage( E.Message );
ekTooManyRows: ShowMessage( E.Message );
ekRecordLocked: ShowMessage( E.Message );
ekUKViolated: ShowMessage( E.Message );
ekFKViolated:ShowMessage( E.Message );
ekObjNotExists: ShowMessage( E.Message );
ekUserPwdInvalid:ShowMessage( E.Message );
ekUserPwdExpired:ShowMessage( E.Message );
ekUserPwdWillExpire:ShowMessage( E.Message );
ekCmdAborted: ShowMessage( E.Message );
ekServerGone:ShowMessage( E.Message );
ekServerOutput:ShowMessage( E.Message );
ekArrExecMalfunc:ShowMessage( E.Message );
ekInvalidParams: ShowMessage( E.Message );
end;
end
else // aqui o If (E is EDatabaseError) then ainda podeá ser mais apurado
ShowMessage('Erro ao escrever a Tabela:' +#13#13 + E.Message);
Action := daAbort;
end;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)