RX0049

领域: 执行

错误消息

data.add[%s, …] 被拒绝:键 %s 已经存在,add 永远不覆盖;请使用 data.update

消息中的 %s 表示引擎抛出错误时填入的具体内容。

小故事

你想往一个集合里加一个条目,用的是 data.add,可是引擎说,这个键,已经有了。在 rush 里,写数据的门有两扇,互为镜子:data.add,只负责加新的,永远不覆盖;data.update,才负责覆盖已有的。这样,覆盖一个键,就只有一扇门,不会糊里糊涂地把别人放在那里的值给换掉。所以,如果这个键已经存在,或者你在同一次调用里,把同一个键写了两遍,add 就拒绝了。以前,这种情况只会得到一个含糊的提示,说某个调用被拒绝,代码是负一,没有说清是哪条法则,哪个键。现在,消息里明明白白:集合的名字,和那个键。举个例子:你加了名字这个键,后来又加了一遍。怎么改?想覆盖,就用 data.update;想保留旧的,就换一个键。记住:加是加,改是改。

文本来自 Rush 引擎的错误目录。