在 MQL4 中处理异常
Handling exceptions in MQL4
在 Java
语言中,可以使用 try
-catch
机制处理异常。
在MQL4
中是否存在任何类似行为?
此代码在 Close[bar]
表达式中抛出错误“array out of range
”,我无法正确处理它。
我们将不胜感激。
bool isBarClosed( int bar ) {
bool barClosed = true;
double closePrice = Close[bar];
int error = GetLastError();
if ( error == 4202 ) {
barClosed = false;
}
return barClosed;
}
没有
MQL4
不支持类似于 try/except/finally
或 try/catch
用例的结构 python / java 和类似的语言。
如何处理异常?
假设没有编译时错误。
运行时的错误处理起来比较麻烦,有的甚至会导致软件崩溃。
人们可以而且应该通过适当的类型检查和用例预验证主动清理 MQL4 代码,以防止异常。
例外情况是 dbPool
操作,在某些情况下,这些操作可能 "legitimately" 无法产生预期的结果。
A GetLastError()
(如果先验地清除了异常本身)可以用作几乎-post-mortem 标识,而不是异常处理程序。
4202?不是你的问题,兄弟'
_LastError == 4202 ... does not explain the trouble <<< stdlib.mqh
4202
ERR_OBJECT_DOES_NOT_EXIST
Object does not exist
您的问题似乎与 bar
"pointing" 之外的 TimeSeries
-reverse-stepping-index of [=61] 有关=]Close[]
值。
0 <= aBarPtrIDX < Bars
下一个目标? Close[aBarPtrIDX]
误解
在 MQL4
域中花费了一段时间后,人们熟悉了一些相互矛盾的事实。一个潜在的惊喜是,当前的柱线,
"hot-zero"[0]
,在其全部生命周期内包含Close[0] == Bid
。
在 运行ning 条被 aNewBarEVENT
终止后(由 Volume[0] == 1
发出信号(或 Volume[0] < aPreviousVolume_0
-- 一个更安全的案例模式,MQL4
-松散耦合的事件循环错过了几个quote
-在繁忙的事件中到达)),Close[1]
代表各自Bar
-期间的最后访问价格期间和 Close[0]
继续在不断变化的 Bid
价格
上冲浪
在 Java
语言中,可以使用 try
-catch
机制处理异常。
在MQL4
中是否存在任何类似行为?
此代码在 Close[bar]
表达式中抛出错误“array out of range
”,我无法正确处理它。
我们将不胜感激。
bool isBarClosed( int bar ) {
bool barClosed = true;
double closePrice = Close[bar];
int error = GetLastError();
if ( error == 4202 ) {
barClosed = false;
}
return barClosed;
}
没有
MQL4
不支持类似于 try/except/finally
或 try/catch
用例的结构 python / java 和类似的语言。
如何处理异常?
假设没有编译时错误。
运行时的错误处理起来比较麻烦,有的甚至会导致软件崩溃。
人们可以而且应该通过适当的类型检查和用例预验证主动清理 MQL4 代码,以防止异常。
例外情况是 dbPool
操作,在某些情况下,这些操作可能 "legitimately" 无法产生预期的结果。
A GetLastError()
(如果先验地清除了异常本身)可以用作几乎-post-mortem 标识,而不是异常处理程序。
4202?不是你的问题,兄弟'
_LastError == 4202 ... does not explain the trouble <<< stdlib.mqh
4202
ERR_OBJECT_DOES_NOT_EXIST
Object does not exist
您的问题似乎与 bar
"pointing" 之外的 TimeSeries
-reverse-stepping-index of [=61] 有关=]Close[]
值。
0 <= aBarPtrIDX < Bars
下一个目标? Close[aBarPtrIDX]
误解
在 MQL4
域中花费了一段时间后,人们熟悉了一些相互矛盾的事实。一个潜在的惊喜是,当前的柱线,
"hot-zero"[0]
,在其全部生命周期内包含Close[0] == Bid
。
在 运行ning 条被 aNewBarEVENT
终止后(由 Volume[0] == 1
发出信号(或 Volume[0] < aPreviousVolume_0
-- 一个更安全的案例模式,MQL4
-松散耦合的事件循环错过了几个quote
-在繁忙的事件中到达)),Close[1]
代表各自Bar
-期间的最后访问价格期间和 Close[0]
继续在不断变化的 Bid
价格