为啥延迟块为空时,Anylogic stopDelay() 函数会抛出错误?

Posted

技术标签:

【中文标题】为啥延迟块为空时,Anylogic stopDelay() 函数会抛出错误?【英文标题】:Why Anylogic stopDelay() function throws error when Delay block is empty?为什么延迟块为空时,Anylogic stopDelay() 函数会抛出错误? 【发布时间】:2021-12-23 08:33:31 【问题描述】:

我有一个动作事件

delay.stopDelay(delay.get(0));

它工作正常,但是当延迟块变空时出现错误 enter image description here

【问题讨论】:

请注意,not stopDelay 会引发错误。 stopDelay作为代理停止延迟;您尝试从空的延迟块 (delay.get(0)) 中获取第一个代理会导致错误(希望这会导致错误是直观的)。 【参考方案1】:

那是因为你的延迟里面没有任何代理

因此您需要执行以下操作:

if(delay.size()>0)
   delay.stopDelay(delay.get(0)); 

【讨论】:

以上是关于为啥延迟块为空时,Anylogic stopDelay() 函数会抛出错误?的主要内容,如果未能解决你的问题,请参考以下文章

C++ STL栈问题:为啥栈为空时pop()不抛出异常?

scala - 为啥map.size在地图不为空时返回0

为啥我收到异常 Azure WebJobs SDK Dashboard connection string is missing or empty 当它根本不为空时?

java for循环 判断条件为空时 构造方法为啥不需要返回值

为啥判断队列是不是为空时只需比较队首指示和队尾指示是不是相等即可?

Anylogic - 根据源在延迟块中设置多个延迟时间