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
| |||
//+------------------------------------------------------------------+
|