GetLastError()
関数は、MQL4プログラムの実行中に発生した直近のエラーコードを取得するために使用される関数です。この関数は、エラーが発生した際にその原因を特定し、適切なエラーハンドリングを行うために重要です。
目次
GetLastError()
関数の基本構造
- 戻り値:
int
型のエラーコードを返します。 - 引数: なし
この関数を呼び出すと、システム変数_LastError
に格納されているエラーコードが返され、その後_LastError
の内容はリセットされます。
サンプルコード: GetLastError()
を使用したエラーハンドリング
以下のサンプルコードは、OrderSend()
関数を使用して注文を送信し、失敗した場合にGetLastError()
を使ってエラーコードを取得し、エラーメッセージを出力する例です。
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
// 注文を送信
int ticket = OrderSend(Symbol(), OP_BUY, 0.1, Ask, 10, 0, 0, "", 123, 0, clrNONE);
// 注文が失敗した場合
if(ticket == -1)
{
// エラーコードを取得
int errorCode = GetLastError();
// エラーコードに基づいてエラーメッセージを出力
Print("OrderSend failed with error code: ", errorCode);
}
else
{
Print("Order placed successfully with ticket #", ticket);
}
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
コードの説明
OrderSend()
: 新規注文を送信する関数。失敗した場合は-1
を返します。GetLastError()
: 直近のエラーコードを取得します。OrderSend()
が失敗した場合に呼び出されます。Print()
: エラーコードをコンソールに出力します。
このコードでは、OrderSend()
関数が失敗した場合にGetLastError()
を使用してエラーコードを取得し、エラーメッセージを出力しています。
これにより、何が問題で注文が失敗したのかを特定することができます。
エラーコードは数値で返されるため、具体的なエラー内容を知るには、エラーコードをエラーメッセージに変換する必要があります。これには、ErrorDescription()
関数を使用することができます。