Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5
Aleksey Vyazmikin , 2019.02.17 06:56
Bir kez daha deneyi tekrarlamaya karar verdim, işte kod
İşte sonuç
Hatanın nedeni hakkında bir fikriniz var mı?Telepatlar tatilde. Ve sıradan insanlar için ihtiyacınız olan:
Bir hata olduğu size nereden bildirildi? Size söyledim - bir an için kütüphaneye bakın, _LastError değişkenine yazılabilir. Bu durumda, kodun bir hata ile çalışması gerekli değildir. Sonuçta, bir nesne aranabilir (ve orada değilse, değişkene bir hata kodu girilecektir) ve yaratılması olabilir. Şimdi, eğer nesne yaratılmamışsa, o zaman evet - bir hata, ama yaratıldı ve her şey yolunda gidiyor. Ancak kontrol ettikten sonra, hata kodu (nesne oluşturulmadan önce eksikti) bir değişkene yazılacak ve daha sonra kodunuzda okuyacaksınız.
Telepatlar tatilde. Ve sıradan insanlar için ihtiyacınız olan:
1. Kod
2. Günlükte hata mesajları alması beklenmiyor
3. Windows 7 Home 32 bit, 1940 oluşturma, test sırasında sunucuya bağlı değil - aracı Açılış.
Bir hata olduğu size nereden bildirildi? Size söyledim - bir an için kütüphaneye bakın, _LastError değişkenine yazılabilir. Bu durumda, kodun bir hata ile çalışması gerekli değildir. Sonuçta, bir nesne aranabilir (ve orada değilse, değişkene bir hata kodu girilecektir) ve yaratılması olabilir. Şimdi, eğer nesne yaratılmamışsa, o zaman evet - bir hata, ama yaratıldı ve her şey yolunda gidiyor. Ancak kontrol ettikten sonra, hata kodu (nesne oluşturulmadan önce eksikti) bir değişkene yazılacak ve daha sonra kodunuzda okuyacaksınız.
Kitaplık ya gerçek bir hata oluştuğunda bir hata atmalı ya da durumu doğru bir şekilde ele almalı ve olmadığı yerde bir hata atmamalıdır. Eğer hata kontrolü yapılırken kütüphane kullanımım sınıfta açıklanmıyorsa, o zaman onu kaydettirmek gerekir. Her durumda, kullanıcının ürün üreticisinin kitaplıklarını düzenlemesi mantıksızdır.
Kitaplık ya gerçek bir hata oluştuğunda bir hata atmalı ya da durumu doğru bir şekilde ele almalı ve olmadığı yerde bir hata atmamalıdır. Eğer hata kontrolü yapılırken kütüphane kullanımım sınıfta açıklanmıyorsa, o zaman onu kaydettirmek gerekir. Her durumda, kullanıcının ürün üreticisinin kitaplıklarını düzenlemesi mantıksızdır.
Hata yok, tekrar okuyun:
Bir hata olduğu size nereden bildirildi? Size söyledim - bir an için kütüphaneye bakın, _LastError değişkenine yazılabilir. Bu durumda, kodun bir hata ile çalışması gerekli değildir. Sonuçta , bir nesne aranabilir (ve orada değilse, değişkene bir hata kodu girilecektir ) ve yaratılması olabilir . Şimdi, eğer nesne yaratılmamışsa, o zaman evet - bir hata, ama yaratıldı ve her şey yolunda gidiyor. Ancak kontrol ettikten sonra, hata kodu (nesne oluşturulmadan önce eksikti) bir değişkene yazılacak ve daha sonra kodunuzda okuyacaksınız.
Bu nedenle, kodun düzenli olarak yürütülmesinden sonra hatayı neden okuduğunuzu öğrenmek yalnızca sizin ilgi alanınızdır. Büyük olasılıkla, _LastError değişkenindeki sıfır olmayan bir kodun içeriğinin, yalnızca CGGraphic kodunda değil, içinde bir hata olması gerektiği anlamına gelmediğini anlamıyorsunuz. Bu durumda, belki de bu, SB'de CGraphic içinde gerçekleştirilen bir nesnenin varlığının aranmasının basit bir sonucudur. Adına göre bir nesne için bir istek vardı, döndürülen sonuç -1 oldu ve 4202 kodu _LastError'a sığdı.Ardından nesne yaratıldı, her şey yoluna girdi ve çağıran programa geri döndü. Ve içinde hemen hata kodunu okur ve alırsınız. Ancak hata yok - SB içindeki sorguların sonucunu görüyorsunuz.
Ben sadece rapor ettiğiniz şey için olası bir sebep öneriyorum.
Bu nedenle, gerçekten gerçek bir hata bulmak ve bunu raporlamak istiyorsanız, hata ayıklayıcıdaki tüm CGraphic kodunu tamamen gözden geçirmeniz ve mantık ve işlemde hatalara yol açacak gerçek hatayı yakalamanız gerekir ve sadece bunu iddia etmekle kalmazsınız. hata kodunu okuyun, bu kesinlikle var olduğu anlamına gelir.
Hata yok, tekrar okuyun:
Bu nedenle, kodun düzenli olarak yürütülmesinden sonra hatayı neden okuduğunuzu öğrenmek yalnızca sizin ilgi alanınızdır. Büyük olasılıkla, _LastError değişkenindeki sıfır olmayan bir kodun içeriğinin, yalnızca CGGraphic kodunda değil, içinde bir hata olması gerektiği anlamına gelmediğini anlamıyorsunuz. Bu durumda, belki de bu, SB'de CGraphic içinde gerçekleştirilen bir nesnenin varlığının aranmasının basit bir sonucudur. Adına göre bir nesne için bir istek vardı, döndürülen sonuç -1 oldu ve 4202 kodu _LastError'a sığdı.Ardından nesne yaratıldı, her şey yoluna girdi ve çağıran programa geri döndü. Ve içinde hemen hata kodunu okur ve alırsınız. Ancak hata yok - SB içindeki sorguların sonucunu görüyorsunuz.
Ben sadece rapor ettiğiniz şey için olası bir sebep öneriyorum.
Bu nedenle, gerçekten gerçek bir hata bulmak ve bunu raporlamak istiyorsanız, hata ayıklayıcıdaki tüm CGraphic kodunu tamamen gözden geçirmeniz ve mantık ve işlemde hatalara yol açacak gerçek hatayı yakalamanız gerekir ve sadece bunu iddia etmekle kalmazsınız. hata kodunu okuyun, bu kesinlikle var olduğu anlamına gelir.
Siz kendiniz mantıksal akıl yürütmede kodda bir hata olabileceğini belirttiniz ve bu, hatayı sıfırlamamakla ifade edildi. yaratılmadan önce nesnenin yokluğu nedeniyle elde edilmiştir.
Hayır, karmaşık kodda bir hata aramaya ve ardından olması gereken bir yanıt almaya kalifiye değilim.
Bu mesajın kullanıcı hatası olup olmadığını söyleyebilir misiniz?
Bu kodu işaret eder - D.PointsFill( false );
Siz kendiniz mantıksal akıl yürütmede kodda bir hata olabileceğini belirttiniz ve bu, hatayı sıfırlamamakla ifade edildi. yaratılmadan önce nesnenin yokluğu nedeniyle elde edilmiştir.
Hayır, karmaşık kodda bir hata aramaya ve ardından olması gereken bir yanıt almaya kalifiye değilim.
Lütfen bu mesajın bir kullanıcı hatası olup olmadığını söyleyin.
Bu kodu işaret eder - D.PointsFill( false );
Cümlenin anlamını hiç anlamadım.
Bana öyle geliyor ki, size her şeyi ayrıntılı olarak anlattım.
bilmiyorum. Yeterli bilgi yok.
Cümlenin anlamını hiç anlamadım.
Bana öyle geliyor ki, size her şeyi ayrıntılı olarak anlattım.
bilmiyorum. Yeterli bilgi yok.
Kodun bir hataya tepki üzerine kurulu olduğunu anlamıyorsunuz (bir hata durumunda bir nesne oluşturuyoruz), o zaman hatayı düzelttikten sonra ( bir nesne oluşturuyoruz ), bu hatayı sıfırlamak mantıklıdır, ki buna göre, mantıksal akıl yürütmenize göre, kütüphanede yapılmaz.
Bu yüzden bu hataya nasıl tepki vereceğime dair hiçbir bilgim yok ...
Kodun bir hataya tepki üzerine kurulu olduğunu anlamıyorsunuz (bir hata durumunda bir nesne oluşturuyoruz), o zaman hatayı düzelttikten sonra ( bir nesne oluşturuyoruz ), bu hatayı sıfırlamak mantıklıdır, ki buna göre, mantıksal akıl yürütmenize göre, kütüphanede yapılmaz.
Bu yüzden bu hataya nasıl tepki vereceğime dair hiçbir bilgim yok ...
Bir hatanın, _LastError'da sıfır olmayan bir kodun varlığı değil, bu işlevin hatalı bir şekilde yürütüldüğünü gösteren bir işlev tarafından sonucun döndürülmesi olduğu açıkça anlaşılmalıdır. Ve _LastError, işlevin hatalı yürütülmesine neden olan hatayı size doğru bir şekilde gösterecek kodu içerir. Bu nedenle, doğrudan işlevin dönüş kodunu kullanmak yerine, hizmet değişkeninde depolanan hata kodunun açıklamasına mantığınıza güvenmek çok şüphelidir. İşlev -1 veya yanlış veya 0 döndürdüyse (her işlev için hata kodu yardımda açıklanmıştır) ve bu nedenle - _LastError içindeki kod değil, yalnızca işlev tarafından döndürülen sonucun analizi sizin tarafınızdan işlenmelidir. , bir hatayı belirtmez, ancak bir işlevin neden sonuç döndürdüğünü belirtmek için kullanılır.
Belirtilen ada sahip hiçbir nesne yoksa, nesne arama işlevi sıfırdan küçük bir değer döndürür. Bu bir hata mı? Numara. Bu, belirli bir ada sahip bir nesne oluşturmaya karar verdiğiniz temel olarak normal bir işlev yanıtıdır. Bu durumda, _LastError'da bulunan kod doğrudan "İstenen ada sahip nesne mevcut değil" der - onu oluşturabilirsiniz.
Genel olarak, size açıklama yapmaktan bıktım. Kim ister - anlayacaktır.