SetLastError ver!!! - sayfa 4

 
sergeev :

önerinizin MQL'yi geliştirmeye nasıl yardımcı olacağını hala yazmadınız. Şimdiye kadar, sadece sizin tarafınızdan ihtiyaç duyulan, anlaşılmaz bir amaç için bazı çıplak istekler

En başta MQL5'te zaten düşündüklerini ve ihtiyacınız olan şeyin orada olduğunu yazdım, ancak MQL4'te bu, last_error görünürlüğü verilerek düzeltilebilir. İkinci kez tekrar ediyorum, sorunu kendi kendine yapılan iki işlevle çözdüm. Ancak şimdi bu benim son hatam değil, ilk son hata artı özel hata kodları olasılığı. MQL5'teki gibi.
 
Roger :

Bu iyi değil, çünkü önceki işlemden bir hata aldıysanız ve bunu işlemediyseniz, mevcut işlemde herhangi bir hata yoksa, bir öncekini işlersiniz.

Evet, GetLastError öğesini kesinlikle çağırmazsanız , ancak yalnızca false döndüren bir işlevden çağırırsanız, her şey yolundadır, bu, önceki olası bir hatanın kodunu zaten yenisiyle değiştirdiği anlamına gelir!
 
vit46 :

Evet, GetLastError'u kesinlikle çağırmazsanız, ancak yalnızca false döndüren bir işlevden çağırırsanız, her şey yolundadır; bu, önceki olası bir hatanın kodunu zaten yenisiyle değiştirdiği anlamına gelir!

Ek bir işlevde bir hatayı kontrol ederken, onu sıfırlamanız yeterlidir. Ancak, kodda hata olup olmadığını kontrol etmediğiniz ancak bir hata meydana gelebileceği yerler varsa, uygun olmayan bir hatayla karşılaşabilirsiniz.
 
Roger :

Ek bir işlevde bir hatayı kontrol ederken, onu sıfırlamanız yeterlidir.


Hayır, sıfırlamıyorum.

 // глобально видимая переменная для всей программы
int last_error_fifo = 0 ;

int GetError()
   {
   if (last_error_fifo == 0 )
      {
      last_error_fifo = GetLastError ();
      }
   return (last_error_fifo);
   }

void SetError( int errcode)
   {
   last_error_fifo = errcode;
   // Это можно делать и напрямую, но только установку ошибки или сброс.
   // Для чтения ошибки только GetError() иначе GetLastError не сработает.
   }
 

En Değerli (size göre) hata işleme işlevini önerebilecek olan var mı?

 
charter :

En Değerli (size göre) hata işleme işlevini önerebilecek olan var mı?


Evet, bir şekilde seçim yapmaya gerek yok ... elimizdekilerden yapıyoruz ... veya GetLastError'a koşulsuz çağrı yapmamak
 
vit46 :


Hayır, sıfırlamıyorum.


Ve bu nedir?

last_error_fifo = GetLastError ();
 
vit46 :

Evet, bir şekilde seçim yapmaya gerek yok ... elimizdekilerden yapıyoruz ... veya GetLastError'a koşulsuz çağrı yapmamak

Hayır, hata hakkındaki bilgilerden değil, bir hata oluştuğunda/tespit edildiğinde danışmanın "doğru davranışından" bahsediyorum.
 
Roger :


Ve bu nedir?


Ve bu koşulsuz bir sıfırlama değildir, ancak yalnızca last_error_fifo == 0 ise aynı yumurtalar yalnızca profilde daha kısadır. hataları kontrol etmeden önce işlevin ne döndürdüğünü kontrol edin.
 
charter :

Hayır, hata hakkındaki bilgilerden değil, bir hata oluştuğunda/tespit edildiğinde danışmanın "doğru davranışından" bahsediyorum.

Senin mantığına bağlı. Sonuçta, her hatanın işlenmesini yapabilirsiniz, ancak bu durumda yalnızca önemli olanları yapabilirsiniz.