gpt4 book ai didi

java - 如何在 StringTemplate 中检索错误消息?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:22:30 24 4
gpt4 key购买 nike

如何从 StringTemplate 中检索编译时错误消息作为字符串?

例如这段代码:

STGroup stg = new STGroup('<', '>');
CompiledST compiledTemplate = stg.defineTemplate("receipt", "<an invalid template<>");
if (compiledTemplate == null)
System.out.println("Template is invalid");

将简单地记录诸如“无效对我来说是一个完全惊喜”之类的内容,但我想在我的 UI 中显示此错误消息。

我可以使用 stg.errMgr 访问 ErrorManager。我希望这里有像 getErrors() 这样的方法,但是没有...

最佳答案

您可以为该组设置一个错误监听器,这将允许您捕获错误,然后将其从那里传递到 UI。

This answer告诉您更多关于实现 STErrorListener 的信息。他们给出的示例无法编译,因为他们从 ErrorListener 中抛出已检查的异常。也许更好的方法是直接在监听器内部处理错误,或者您可以抛出一个 RuntimeException,这样您就可以在调用 stg.defineTemplate(...) 时捕获错误。

public class MySTErrorListener implements STErrorListener {
...
@Override
public void compileTimeError(STMessage msg) {
// do something useful here, or throw new RuntimeException(msg.toString())
}
...
}

如果您要抛出 RuntimeException,您可以在定义 ST 时捕获它:

stg.setListener(new MySTErrorListener());
try{
CompiledST compiledTemplate = stg.defineTemplate("receipt", "<an invalid template<>");
} catch (Exception e)
{
// tell the UI about the error
}

关于java - 如何在 StringTemplate 中检索错误消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27268522/

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