Package net.ameba.cassandra.web.util

Source Code of net.ameba.cassandra.web.util.FreemarkerExceptionHandler

package net.ameba.cassandra.web.util;

import java.io.IOException;
import java.io.Writer;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.NoSuchMessageException;
import org.springframework.stereotype.Component;

import freemarker.core.Environment;
import freemarker.template.TemplateException;
import freemarker.template.TemplateExceptionHandler;

/**
*
* @author snamura
*/
@Component("exceptionHandler")
public class FreemarkerExceptionHandler implements TemplateExceptionHandler {

  private static final Logger log = LoggerFactory.getLogger(FreemarkerExceptionHandler.class);

  /*
   * (non-Javadoc)
   * @see freemarker.template.TemplateExceptionHandler#handleTemplateException(freemarker.template.TemplateException, freemarker.core.Environment, java.io.Writer)
   */
  public void handleTemplateException(
      TemplateException exception,
      Environment environment,
      Writer writer)
        throws TemplateException {
    try {
      if (exception.getCause().getClass() == NoSuchMessageException.class) {
        NoSuchMessageException ex = (NoSuchMessageException) exception.getCause();
        writer.write(ex.getMessage());
      } else {
        writer.write("Error: ");
        writer.write(exception.getMessage());
      }
    } catch (IOException ex) {
      log.warn(ex.getMessage(), ex);
    }
   
  }
}
TOP

Related Classes of net.ameba.cassandra.web.util.FreemarkerExceptionHandler

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.