SetReturnError

操作終了時に端末プロセスを返すコードを設定します。

void  SetReturnError(
  int ret_code      // クライアント端末完了コード
  );

パラメータ

ret_code

[in]  操作完了にクライアント端末が返すコード

戻り値

なし

注意事項

SetReturnError()関数を使用して指定されたret_code戻りコードを設定すると、コマンドラインから端末を起動する際にプログラム操作完了の理由を分析するのに有用です。

TerminalClose()と異なり、端末操作はSetReturnError()関数によっては完了されません。代わりに、完了時に端末プロセスを返すコードを設定するだけです。

SetReturnError()関数が複数回呼び出されたり、異なるMQL5プログラムから呼び出されたりすると、最後に設定された戻りコードが返されます。

設定されたコードは、以下の場合を除いて、端末プロセスの完了時に返されます。

  • 実行中に重大エラーが発生した -
  • TerminalClose(int ret_code)関数が呼び出されて、指定されたコードで端末操作完了コマンドを発行した。

 

例:

//+------------------------------------------------------------------+
//| スクリプトプログラム開始関数                                              |
//+------------------------------------------------------------------+
void OnStart()
 {
  matrix matrix_a =
    {
       {-3.474589, 1.106384, -9.091977,-3.925227 },
       {-5.522139, 2.366887,-15.162351,-6.357512 },
       { 8.394926,-2.960067, 22.292115, 9.524129 },
       { 7.803242,-2.080287, 19.217706, 8.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);
 
//--- 完了すると、クライアント端末は2つの行列の比較におけるエラーの数を返す
  SetReturnError(compare_errors);
 }

参照

プログラム実行実行エラー初期化解除の理由TerminalClose