Fórum Try Except com on E: Exception do #468487

30/01/2014

0

Try

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

Leandro Carvalho

Responder

Posts

30/01/2014

Marco Salles

Begin end

Try

Except
on E: Exception do
  begin
    ShowMessage(''Erro: '' + E.Message );
   Close;
  end;
end;


[]sds
Responder

Gostei + 0

31/01/2014

Leandro Carvalho

Obrigado Marcos.
Simples, é que todos os exemplos que eu vi não explicava dessa forma.
Responder

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;
Responder

Gostei + 0

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

Aceitar