如果找不到布局,如何在Liferay Velocity主题中捕获NoSuchLayoutException?

时间:2013-04-18 16:19:03

标签: exception-handling liferay velocity liferay-6 liferay-velocity

我在速度模板主题中有以下代码:

#set($currLayout = $layoutLocalService.getFriendlyURLLayout($group_id, true, $currFriendlyUrl))

抛出一个

com.liferay.portal.NoSuchLayoutException
    at com.liferay.portal.service.impl.LayoutLocalServiceImpl.getFriendlyURLLayout(LayoutLocalServiceImpl.java:959)

匹配布局不存在时。

我如何在速度模板中捕获此异常?

1 个答案:

答案 0 :(得分:3)

据我所知,无法在速度模板中捕获异常。通常,有两种方法可以处理这种情况:

  • 处理使用模板的应用程序中的异常,例如servlet
  • 避免抛出异常;相反,让方法始终返回有效(默认)值,如果不可能则返回null

velocity manual建议尽可能使用第二个选项。