レッツゴーSetLastError!!!! - ページ 3

 
VladislavVG:
また、エラー処理について書いたフォーラムスレッドもあります;)

ここではなぜか正しいアドバイスがもらえませんでしたが :)何言ってるんですか、MQL5ではちゃんとMQL4でやってたんですよ、includesで直せばいいんですよ、それだけです :)
 
vit46:

ここではなぜか正しいアドバイスがもらえませんでしたが :)MQL5はMQL4でちゃんとやってくれているので、includesで修正すればいい、それだけの話です :)

もし、この記事のことを指しているのなら:

 
vit46:
Очень нехвотает этой функции в MT4 что делать помогите!

Функция GetLastError() обнуляется после чтения ее значения. Вставьте дополнительное пустое считывание перед нужной Вам операцией.

int err=GetLastError();
OrderSend(...);

if (GetError()==конкретный номер){
         // код обработки сброс ошибки или наоборот
         SetError(0);
         }
else if(...)

私ならそんなことはしませんね。他の方は、私がアドバイスしたことを多かれ少なかれ確認されているようです ;) ....

 
VladislavVG:

もし、この記事のことを指しているのなら:

私ならそんなやり方はしませんね : IMHO - 間違ってるというか、ちょっと違う。

トピックを展開する。
 
Roger:
トピックを展開する。

何を開発するのか?

間違いは「後で」と先延ばしにせず、発生した時に対処すべきです。

 

すでに2ページ目に書かれています。

を使う。

int ticket=OrderSend();
if (ticket<0) // и только после этого
{  GetLastError()  }
 
VladislavVG:

もし、この記事のことを指しているのなら:

私ならそんなことはしませんね。他の方は、私がアドバイスしたことを多かれ少なかれ確認されているようです ;) ....


そんなことはない、むしろ良いことだ。 より高度な言語では、エラー処理の 面でそのように設計されている......。というわけで、MQL5は少しずつですが、確実に良くなってきています...。
 
Что тут развивать?

Ошибки надо обрабатывать по мере их возникновения, а не откладывать "а потом".

それは明らかです。自分では決してやらない、問題の解決策として提供したのです。しかし、原理的にできない理由を教えてほしい。もしかしたら、将来的に出くわすかもしれないし、その時は役に立つかもしれない。

 
sergeev:


すでに2ページ目に書かれています。

を使う。


これは、前の操作でエラーがあったのに処理しなかった場合、今回の操作でエラーがなければ、前の操作を処理することになるため、よくありません。
 
vit46:

より発展した言語では、エラー処理の面でそのように設計されています。というわけで、MQL5は少しずつですが、確実に良くなってきています...。

あなたの提案がMQLの向上にどのように役立つのか、まだ書かれていませんね。
 
sergeev:


すでに2ページ目に書かれています。

を使う。


そうですね、私の考え方とも一致しますし......。無条件にGetLastErrorコールを 使用することはできません。