Обработка исключений
(1 чел.) (1) гость
  • Страница:
  • 1

ТЕМА: Обработка исключений

Обработка исключений 4 года, 9 мес. назад #1291

  • Andry
  • Осваиваюсь на форуме
  • Постов: 26
  • Репутация: 0
Здравствуйте!
Подскажите пожалуйста, каким образом можно обрабатывать ошибки IolaCOM?

Например, установлен пин(пароль от ключа). Но, что бы проверить верен ли он или нет, обратимся к PropDoc:
try
   IolaCOM.SetPIN(pin_edt.Text);
   OCSP_frm.FIO_lb.Caption:= IolaCOM.PropDoc(selectkey_combo.Text, PROP_COMMONNAME_STR);
except
 On E:Exception Do
 begin
 ShowMessage(E.ClassName+' ошибка, с сообщением : '+E.Message);
 exit;
 end;
end;


Не функционирует. Но, запуске дебаггера в delphi xe5: exception - invalid password
Как можно отловить это исключение, но во время выполнения программы?


Заранее спасибо...

Re: Обработка исключений 4 года, 9 мес. назад #1292

  • Murat Seisenov
  • Модератор
  • Постов: 391
  • Репутация: 19
Здравствуйте!

Попробуйте после IolaCOM.PropDoc вызвать IolaCOM.GetLastError. Если его результат не равен нулю, то вызов последнего метода IolaCOM завершился с ошибкой (метод GetLastError возвращает код ошибки).
Для получения описания ошибки вызовите метод GetLastErrorString.
Модератор

Re: Обработка исключений 4 года, 9 мес. назад #1293

  • Andry
  • Осваиваюсь на форуме
  • Постов: 26
  • Репутация: 0
procedure TForm1.login_btnClick(Sender: TObject);
var s:tstringlist;
begin
   IolaCOM.SetPIN(pin_edt.Text);
   OCSP_frm.FIO_lb.Caption:= IolaCOM.PropDoc(selectkey_combo.Text, PROP_COMMONNAME_STR);
 if IolaCOM.GetLastError<>0 then
  begin
   s:=TStringList.Create;
   s.Text:= IolaCOM.GetLastErrorString;
   showmessage(s.ValueFromIndex[IolaCOM.GetLastError]);
   exit;
 end;

OCSP_frm.Label2.caption:=selectkey_combo.Text;
OCSP_frm.Timer1.Enabled:= true;
OCSP_frm.ShowModal;
end;


К сожалению, проскакивает конструкцию IF, значит значение больше нуля. Пытался поймать его:
procedure TForm1.login_btnClick(Sender: TObject);
var s:tstringlist;
begin
   IolaCOM.SetPIN(pin_edt.Text);
   OCSP_frm.FIO_lb.Caption:= IolaCOM.PropDoc(selectkey_combo.Text, PROP_COMMONNAME_STR);
 //if IolaCOM.GetLastError<>0 then
  begin
   s:=TStringList.Create;
   s.Text:= IolaCOM.GetLastErrorString;
   showmessage(s.ValueFromIndex[IolaCOM.GetLastError]);
   //exit;
 end;

Но, тогда выходит пустое сообщение

Re: Обработка исключений 4 года, 9 мес. назад #1295

  • Murat Seisenov
  • Модератор
  • Постов: 391
  • Репутация: 19
Да, PropDoc не генерирует исключение а случае неправильного пин-кода. Только возвращает пустое значение.
Хотя он и не предназначен для этих целей.
Модератор

Re: Обработка исключений 4 года, 9 мес. назад #1296

  • Andry
  • Осваиваюсь на форуме
  • Постов: 26
  • Репутация: 0
Сойдет и так на первое время тогда))))

:pinch: ВНИМАНИЕ: СПОЙЛЕР!

P.S. Меня так прикалывает оформление вашего спойлера
Изменено: 4 года, 9 мес. назад от Andry. Причина: Временное решение
  • Страница:
  • 1
FaLang translation system by Faboba