/** * Copyright (c)2010-2011 Enterprise Website Content Management System(EWCMS), All rights reserved. * EWCMS PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * http://www.ewcms.com */ package com.ewcms.publication.freemarker.error; import java.io.IOException; import java.io.Writer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import freemarker.core.Environment; import freemarker.template.TemplateException; import freemarker.template.TemplateExceptionHandler; /** * 处理freemarker模板错误 * * @author wuzhijun */ public class EwcmsFreemarkerExceptionHandler implements TemplateExceptionHandler { private static final Logger logger = LoggerFactory.getLogger(EwcmsFreemarkerExceptionHandler.class); @Override public void handleTemplateException(TemplateException te, Environment env, Writer out) throws TemplateException { try { out.write("Error: [" + te.getMessage() + "]"); logger.warn("Freemarker Error: [" + te.getMessage() + "]"); } catch (IOException e) { logger.warn(e.getMessage()); throw new TemplateException("Failed to print error message. Cause: " + e, env); } } }