SetReturnError

Устанавливает код возврата, который вернёт процесс терминала при завершение работы.

void  SetReturnError(
   int ret_code      // код завершения клиентского терминала
   );

Параметры

ret_code

[in]  Код возврата, который будет возвращен процессом клиентского терминала при завершении работы.

Возвращаемое значение

Нет возвращаемого значения.

Примечание

Установка заданного кода возварта ret_code с помощью функции SetReturnError() будет полезна для анализа причин программного прекращения работы при запуске терминала из командной строки.

Функция SetReturnError() в отличие от TerminalClose() не завершает работу терминала, она только устанавливает код возврата, который вернёт процесс терминала при его завершении.

Если функция SetReturnError() вызывалась многократно и/или из разных MQL5 программ, то терминал вернёт последний установленный код возврата.

Выставленный код будет возвращаться при завершении процесса терминала кроме следующих случаев:

  • возникла критическая ошибка во время выполнения;
  • была вызвана функции TerminalClose(int ret_code), которая отдает терминалу команду на завершение работы с заданным кодом.

 

Пример:

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   matrix matrix_a =
     {
        {-3.4745891.106384, -9.091977,-3.925227 },
        {-5.5221392.366887,-15.162351,-6.357512 },
        { 8.394926,-2.96006722.2921159.524129 },
        { 7.803242,-2.08028719.2177068.186645 }
     };
   matrix matrix_l(4,4);
   matrix matrix_u(4,4);
 
//--- LU декомпозиция
   matrix_a.LU(matrix_l,matrix_u);
 
//--- проверим правильность A = L * U
   matrix matrix_lu=matrix_l.MatMul(matrix_u);
   int    compare_errors=(int)matrix_a.Compare(matrix_lu,1e-29);
   Print("MatrixCompare errors=",compare_errors);
 
//--- клиентский терминал при своём завершении вернёт количество ошибок сравнения двух матриц
   SetReturnError(compare_errors);
  }

 

Смотри также

Выполнение программ, Ошибки выполнения, Причины деинициализации, TerminalClose