Funkcje sprawdzające:   GetLastError()

Funkcja int GetLastError() zwraca kod ostatniego błędu, zapisanego w predefiniowanej zmiennej _LastError , który wystąpił w trakcie działania programu MQL4. Więcej informacji można znaleźć w specyfikacji MQL4.


Przykład 1

Poniższy skrypt wygeneruje błąd 4106 (ERR_UNKNOWN_SYMBOL) przy otwarciu pozycji dla nieistniejącego instrumentu finansowego (NoSuchSymbol).

#property strict
void OnStart()
  {
//--- błędna próba otwarcia pozycji na kupno
   if(OrderSend("NoSuchSymbol", OP_BUY, 0.1, Ask, 10, 0, 0) < 0)
      Print("Otwarcie pozycji na kupno nie powiodło się. Błąd = ",GetLastError());
   else
      Print("Otwarto pozycję na kupno.");
  }

Rys. 1. Przykład stosowania funkcji GetLastError().


Przykład 2

Po wywołaniu GetLastError() wartość _LastError jest zerowana. Tekstowy opis błędu można uzyskać za pomocą funkcji ErrorDescription(). W tym celu do programu należu podłączyć standardową bibliotekę stdlib.mqh. Jeśli po uzyskaniu kodu błędu zaistnieje potrzeba dalszej obróbki tego błędu, jego wartość należy przypisać zmiennej i dalej pracować z tą zmienną.

#property strict
//--- podłączyć bibliotekę z opisami błędów
#include <stdlib.mqh>
void OnStart()
  {
//--- błędna próba otwarcia pozycji na kupno
   if(OrderSend("NoSuchSymbol", OP_BUY, 0.1, Ask, 10, 0, 0) < 0)
     {
      //--- zmiennej CurrentError przypisać wartość błędu
      int CurrentError = GetLastError();
      //--- zmiennej TextError przypisać opis błędu
      string TextError = ErrorDescription(CurrentError);
      //---
      Print("Otwarcie pozycji na kupno nie powiodło się. Błąd = ",CurrentError,", ",TextError);
     }
   else
      Print("Otwarto pozycję na kupno.");
  }

Rys. 2. Przykład stosowania funkcji GetLastError().