Diskussion zum Artikel "Die Verwendung der Behauptung (assertions) bei der Entwicklung der Programme in MQL5"

 

Neuer Artikel Die Verwendung der Behauptung (assertions) bei der Entwicklung der Programme in MQL5 :

In diesem Artikel wird Behauptung (assertions) im Rahmen der Sprache MQL5 betrachtet. Es werden zwei Beispiele für die Realisierung des Behauptungsmechanismus geben, sowie allgemeine Empfehlungen für die Verwendung der Behauptungen.

Eine voll funktionsfähige Makro assert wird nach folgender Art und Weise gebaut. Zunächst wird ein eingehender Ausdruck condition überprüft. Wenn es falsch ist, dann wird eine Nachricht fullMessage gebildet und angezeigt. Die Nachricht fullMessage wird aus den folgenden Elementen aufgebaut:

  1. Der Text des Ausdrucks,der zur Überprüfung gegeben wurde (#condition).
  2. Der Dateiname mit einem Quellcode, aus dem die Makro (__FILE__) aufgerufen wurde.
  3. Die Signatur der Funktion oder Methode, aus der die Makro (__FUNCSIG__) aufgerufen wurde.
  4. Die Zeilennummer in einer Datei mit dem Quellcode, in dem ein Makro-Aufruf platziert wird (__LINE__).
  5. Die Nachricht, die an eine Makro übertragen wurde, wenn es nicht leer ist (message).

Nach der Lieferung der Meldung(Alert) wird in dem zweiten Makrotyp versucht, einen Wert zu einem nicht existierenden Array-Element zuzuweisen, dies führt zu einem Fehler bei der Ausführungszeit und bewirkt so, dass das Programm direkt abstürzt.

Dieses Verfahren, das Programm zu beenden hat Nebenwirkungen für die Indikatoren, die in ihren Unterfenster arbeiten: ihre Unterfenster bleiben im Terminal, und deshalb müssen sie manuell geschlossen werden. Außerdem können Artefakte in Form von nicht entfernten grafischen Objekten, globale Variablen des Terminals, Dateien, etc. sein, die während der Arbeit des Programms erstellt wurden, bis das abgestürzt ist. Wenn dieses Verhalten vollständig inakzeptabel ist, dann sollte die erste Makro verwendet werden.

Autor: Sergey Eremin

Grund der Beschwerde: