我有一個Java函數,比如method1(),它在某些條件下引發異常,說條件A.我從條件爲A的FTL文件中調用該函數。現在我在FTL中發現模板錯誤,說上面的函數拋出了一個異常。就像我們用try-catch處理Java中的異常一樣,我想在我的FTL中使用類似的東西。如何在Freemarker中處理Java中拋出的異常?
這與我的FTL代碼類似。
<#-- @ftlvariable name="someUtilClass" type="com.some.package.SomeUtilClass" -->
<#attempt>
<#assign x = someUtilClass.method1() />
<#recover>
<#assign x = '' />
</#recover>
我正在使用Freemarker 2.3.20。
謝謝。
這可能是相關的:http://stackoverflow.com/questions/15123743/what-are-different-ways-to-handle-error-in-freemarker-template – Berger
@Berger其實我不想處理它在Java端,並且嘗試恢復不起作用。 – sam100rav
我可能是錯的,但AFAIK不能直接在Freemarker模板中使用Java代碼。你需要使用TemplateMethod使它作爲一個方法變量等。所以,如果你還沒有這樣做,這可能是_attemp-recover不工作的原因。你確定你的FTL代碼與此類似嗎? – walen