forked from nique_372/TSNStd
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_BASICS_TRY_MQH
| |
#define TSNSTD_SRC_BASICS_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_BASICS_TRY_MQH
| |
//+------------------------------------------------------------------+
|