如何在模板开关的默认分支中抛出错误(在生成时)?
How to throw an error (at generation-time) in the default branch of a template switch?
我想确保我的模板开关只用它可以处理的节点调用。如果它与无法识别的概念一起使用,我希望代码生成因错误而失败。有没有办法从模板中抛出生成时错误?
注意:我一直在使用的解决方法是生成无效输出,这将导致错误,例如:
default: <T "unknown command: " + $COPY_SRC$[null] T>
然后会产生类似
的错误
textgen error: 'No textgen for Draw.structure.Fill' in [rightExpression] Fill null[847086916112855242] in Draw.sandbox@0
当 Fill
是开关无法识别的概念时。
您可以定义一个 "DISMISS TOP RULE",然后在那里报告错误,而不是有后果的默认值:
template switch operationsSwitch extends <none>
parameters
<< ... >>
null-input message: <none>
cases:
...
default: DISMISS TOP RULE error : operation not supported by generator
这将在消息 window 中显示错误,user/developer 可以单击该消息以从那里到达输入节点和未能匹配的开关。
我想确保我的模板开关只用它可以处理的节点调用。如果它与无法识别的概念一起使用,我希望代码生成因错误而失败。有没有办法从模板中抛出生成时错误?
注意:我一直在使用的解决方法是生成无效输出,这将导致错误,例如:
default: <T "unknown command: " + $COPY_SRC$[null] T>
然后会产生类似
的错误textgen error: 'No textgen for Draw.structure.Fill' in [rightExpression] Fill null[847086916112855242] in Draw.sandbox@0
当 Fill
是开关无法识别的概念时。
您可以定义一个 "DISMISS TOP RULE",然后在那里报告错误,而不是有后果的默认值:
template switch operationsSwitch extends <none>
parameters
<< ... >>
null-input message: <none>
cases:
...
default: DISMISS TOP RULE error : operation not supported by generator
这将在消息 window 中显示错误,user/developer 可以单击该消息以从那里到达输入节点和未能匹配的开关。