gpt4 book ai didi

java - 在 FreeMarker 中发出错误信号

转载 作者:行者123 更新时间:2023-11-30 06:14:34 25 4
gpt4 key购买 nike

场景:

  • 我有一个固定的 Java 程序,它使用 FreeMarker 模板
  • 我是编写 FreeMarker 模板的人。
  • 在我的一个模板中,我想检查一个值,如果它超出范围,则向应用程序发送一个错误信号。

我该怎么做?有 attempt/recover类似于 try/catch 的机制,但没有等同于 throw 的机制。 (stop 指令除外)

最佳答案

您可以将 RuntimeExceptionTemplateException 子类化,然后将该异常抛出到模板内部并在 Template.process 外部捕获它。要抛出异常,您可以创建一个自定义指令,例如:

public class ThrowMyExceptionDirective implements TemplateDirectiveModel {

@Override
public void execute(Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body)
throws TemplateException, IOException {
throw new MyTemplateException();
}

}

将其添加到名称为 "throwMyException" 的数据模型(或添加到 #import 或添加到 Configuration 中作为共享变量) ,然后在模板中您可以执行以下操作:

<@throwMyException />

关于java - 在 FreeMarker 中发出错误信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30089413/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com