为什么AnyLogic中Delay块为空时调用stopDelay()函数会抛出错误
问题根源
代码直接调用delay.get(0)获取首个延时实例,当Delay块内无实体时,delay列表为空,访问下标0会触发索引越界异常,导致运行报错。
修复方案
执行停止操作前先做合法性校验,确认delay对象非空且存在有效延时实例后再执行后续逻辑,修复后代码如下:
// 先校验合法性再执行操作 if (delay != null && delay.size() > 0) { delay.stopDelay(delay.get(0)); }
delay != null校验规避delay对象本身为空导致的空指针异常delay.size() > 0校验确保列表内存在可操作的延时实例,避免索引越界问题
内容的提问来源于stack exchange,提问作者Aqeel Tariq
相关产品推荐
相关产品推荐

