Ir para conteúdo
  • Cadastre-se

Painel de líderes

Conteúdo popular

Showing content with the highest reputation on 31-05-2025 em Posts

  1. Em ambiente de testes/homologação (não testei em produção) ao finalizar o recebimento no TEF PayGo o Delphi reporta 4 vezes a exceção: EConvertError '' is not a valid integer value Essa exceção ocorre na unit ACBrBase, classe TACBrInformacao, método GetAsDate, ao executar StrToInt: function TACBrInformacao.GetAsDate : TDateTime; var DataStr, AnoStr: String; begin DataStr := OnlyNumber( Trim(fInfo) ); if (Length(DataStr) = 6) then // DDMMYY, converte para DDMMYYYY begin AnoStr := IntToStr(YearOf(Today)); DataStr := copy(DataStr,1,4) + copy(AnoStr,1,2) + copy(DataStr,5,2); end; try Result := EncodeDate( StrToInt(copy(DataStr,5,4)), // EXCEÇÃO AQUI !!! StrToInt(copy(DataStr,3,2)), StrToInt(copy(DataStr,1,2)) ) ; except Result := 0 ; end; end; A exceção é tratada no bloco try..except então ela não propaga para quem chamou. Mas o fato de ela acontecer pelo menos 4 vezes em uma operação que foi bem sucedida é um pouco chato. Uma solução simples seria: function TACBrInformacao.GetAsDate : TDateTime; var DataStr, AnoStr: String; begin DataStr := OnlyNumber( Trim(fInfo) ); // ********* SUGESTÃO ********* Result := 0; if Trim(DataStr) = '' then exit; // ********* SUGESTÃO ********* if (Length(DataStr) = 6) then // DDMMYY, converte para DDMMYYYY begin AnoStr := IntToStr(YearOf(Today)); DataStr := copy(DataStr,1,4) + copy(AnoStr,1,2) + copy(DataStr,5,2); end; try Result := EncodeDate( StrToInt(copy(DataStr,5,4)), StrToInt(copy(DataStr,3,2)), StrToInt(copy(DataStr,1,2)) ) ; except Result := 0 ; end; end;
    1 ponto
  2. Enviei ao SVN, modificações para acabar com os Exceptions silenciosos.. Commit [r39439]
    1 ponto
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.