Обработка и перехват ошибок

<< Click to Display Table of Contents >>

Navigation:  Multi-Protocol MasterOPC Server > Руководство по языку Lua 5.1 > Язык и синтаксис > Обработка ошибок >

Обработка и перехват ошибок

Обработка ошибок

В случае возникновения ошибок в скрипте в режиме исполнения, происходит вывод текста ошибки в лог "Сообщения скриптов", при этом дальнейшее исполнение скрипта останавливается.

lua_img0001

Если определенный код вашего скрипта можно возвращать ошибку (например время из устройства может быть считано некорректно, что приведет к ошибке при преобразовании), то можно разместить такой в отдельной функции и вызывать в защищенном режиме с помощью функции pcall .

Пример.

function StrToTime(str) --преобразование строки во время

  local str2=string.gsub (str, "%.", "-") --заменяем точку на дефис для соответствия формату

  local timeval=time.StringToTimeStamp(str2..".000"); --преобразуем в TimeStamp

  return timeval;

end;

 

function OnRead ()

NoErr,timeval=pcall(StrToTime,str1); --вызов функции преобразования в безопасном режиме

if NoErr==true then

--ошибки нет

else

--ошибка при выполнении

end

end