TSNStd/Src/Errors/Try.mqh

88 satır
2,9 KiloByte
MQL5
HamKalıcı BağlantıNormal GörünümGeçmiş

2026-10-09 12:34:15 -05:00
//+------------------------------------------------------------------+
//| Try.mqh |
//| Copyright 2026, Niquel Mendoza. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2026, Niquel Mendoza."
#property link "https://www.mql5.com"
#property strict
2026-10-09 12:56:38 -05:00
#ifndef TSNSTD_SRC_ERRORS_TRY_MQH
#define TSNSTD_SRC_ERRORS_TRY_MQH
2026-10-09 12:34:15 -05:00
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
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; \
}
}
2026-10-09 12:56:38 -05:00
#endif // TSNSTD_SRC_ERRORS_TRY_MQH
2026-10-09 12:34:15 -05:00
//+------------------------------------------------------------------+