81 lines
2.7 KiB
MQL5
81 lines
2.7 KiB
MQL5
//+------------------------------------------------------------------+
|
|
//| Try.mqh |
|
|
//| Copyright 2026, Niquel Mendoza. |
|
|
//| https://www.mql5.com |
|
|
//+------------------------------------------------------------------+
|
|
#property copyright "Copyright 2026, Niquel Mendoza."
|
|
#property link "https://www.mql5.com"
|
|
#property strict
|
|
|
|
#ifndef MQLARTICLES_UTILS_TRY_MQH
|
|
#define MQLARTICLES_UTILS_TRY_MQH
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| |
|
|
//+------------------------------------------------------------------+
|
|
namespace TSN
|
|
{
|
|
//+------------------------------------------------------------------+
|
|
//| |
|
|
//+------------------------------------------------------------------+
|
|
// #define MQLARTICLES_TRY_MOREINFO
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| |
|
|
//+------------------------------------------------------------------+
|
|
#ifdef MQLARTICLES_TRY_MOREINFO
|
|
struct MqlArticlesTryCath
|
|
{
|
|
MqlArticlesTryCath() : func(""), file(""), line(-1), err(false) {}
|
|
|
|
//---
|
|
string func;
|
|
string file;
|
|
int line;
|
|
bool err;
|
|
|
|
//---
|
|
void operator=(const bool v) { err = v; }
|
|
};
|
|
#endif // MQLARTICLES_TRY_MOREINFO
|
|
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| |
|
|
//+------------------------------------------------------------------+
|
|
#ifndef MQLARTICLES_TRY_MOREINFO
|
|
//---
|
|
#define MQLART_TRY_INI \
|
|
bool _err = false; \
|
|
while(true) {
|
|
|
|
#define MQLART_TRY(expr, expected) if(expr!=expected) { _err = true; break; }
|
|
#define MQLART_TRY_IS_ERR (_err)
|
|
|
|
|
|
//---
|
|
#else // MQLARTICLES_TRY_MOREINFO
|
|
//---
|
|
#define MQLART_TRY_INI \
|
|
MqlArticlesTryCath _err; \
|
|
while(true) {
|
|
|
|
#define MQLART_TRY(expr, expected) \
|
|
if(expr!=expected) \
|
|
{ _err.err = true; _err.line=__LINE__; _err.file==__FILE__; _err.func=__FUNCSIG__; break; }
|
|
|
|
|
|
#define MQLART_TRY_IS_ERR (_err.err)
|
|
|
|
#endif // MQLARTICLES_TRY_MOREINFO
|
|
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| |
|
|
//+------------------------------------------------------------------+
|
|
#define MQLART_TRY_END \
|
|
break; \
|
|
}
|
|
}
|
|
#endif // MQLARTICLES_UTILS_TRY_MQH
|
|
//+------------------------------------------------------------------+
|