Page 1 of 1

Обработка out of range

Posted: 15.12.2014 19:52
by drabadan
CFA wrote:
drabadan wrote:O_o а может тогда и аут оф рендж можно обработать?
try/except в PS вроде работает, можно попробовать перехватить исключение.

Code: Select all

Error exec script method "TestTryExcept" - Wrong index!

procedure TestTryExcept;
var
 fArray : Array of Byte;
begin
 
 fArray := [0,1,2,3,4];
 try
  AddToSystemJournal(IntToStr(fArray[8]));
 except
  raiseException(erCustomError, 'Wrong index!'); 
 end; 

 
 AddToSystemJournal(IntToStr(fArray[0])); 
end;

то-есть сообщение себе показать можно, а вот чтоб скрипт продолжился нельзя?

Re: остановка скрипта

Posted: 15.12.2014 20:09
by CFA

Code: Select all

try
  AddToSystemJournal(IntToStr(fArray[8]));
 except
  //raiseException(erCustomError, 'Wrong index!'); 
  AddToSystemJournal('Wrong index!');
 end; 
raiseException не нужно, эта команда создает исключение, которое останавливает скрипт.

И еще вместо raiseException для остановки скрипта можно использовать процедуру Halt.

Re: остановка скрипта

Posted: 15.12.2014 20:31
by drabadan
CFA wrote:

Code: Select all

try
  AddToSystemJournal(IntToStr(fArray[8]));
 except
  //raiseException(erCustomError, 'Wrong index!'); 
  AddToSystemJournal('Wrong index!');
 end; 
raiseException не нужно, эта команда создает исключение, которое останавливает скрипт.

И еще вместо raiseException для остановки скрипта можно использовать процедуру Halt.
эх, где ж вы раньше были!

А ивент реально создать на такой екзепт?

Re: остановка скрипта

Posted: 15.12.2014 20:49
by CFA
drabadan wrote:А ивент реально создать на такой екзепт?
Ивент скорее всего нет, да и не нужен он - try/except это стандартный способ обработки исключительных ситуаций.

Re: остановка скрипта

Posted: 15.12.2014 20:59
by drabadan
CFA wrote:
drabadan wrote:А ивент реально создать на такой екзепт?
Ивент скорее всего нет, да и не нужен он - try/except это стандартный способ обработки исключительных ситуаций.
огромное спасибо!