88 lines
2.9 KiB
MQL5
88 lines
2.9 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 TSNSTD_SRC_ERRORS_TRY_MQH
|
|
#define TSNSTD_SRC_ERRORS_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_NOT(expr, not) if(expr==not) { _err = true; break; }
|
|
#define MQLART_TRY_IS_ERR (_err)
|
|
|
|
|
|
//---
|
|
#else // MQLARTICLES_TRY_MOREINFO
|
|
//---
|
|
#define MQLART_TRY_INI \
|
|
MqlArticlesTryCath _err; \
|
|
while(true) {
|
|
|
|
#define MQLART_TRY_RES { _err.err = true; _err.line=__LINE__; _err.file=__FILE__; _err.func=__FUNCSIG__; break; }
|
|
|
|
#define MQLART_TRY(expr, expected) \
|
|
if(expr!=expected) \
|
|
MQLART_TRY_RES
|
|
|
|
#define MQLART_TRY_NOT(expr, not) \
|
|
if(expr==not) \
|
|
MQLART_TRY_RES
|
|
|
|
|
|
#define MQLART_TRY_IS_ERR (_err.err)
|
|
|
|
#endif // MQLARTICLES_TRY_MOREINFO
|
|
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| |
|
|
//+------------------------------------------------------------------+
|
|
#define MQLART_TRY_END \
|
|
break; \
|
|
}
|
|
}
|
|
#endif // TSNSTD_SRC_ERRORS_TRY_MQH
|
|
//+------------------------------------------------------------------+
|