Java tutorial
/* * Copyright 2014 Amazon Technologies, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at: * * http://aws.amazon.com/apache2.0 * * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES * OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and * limitations under the License. */ package com.amediamanager.controller; import java.util.Arrays; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.servlet.ModelAndView; import com.amediamanager.exceptions.DataSourceTableDoesNotExistException; @ControllerAdvice public class ExceptionHandlerController { private static final Logger LOG = LoggerFactory.getLogger(ExceptionHandlerController.class); private ModelAndView handle(Exception e, String msg) { LOG.error(msg, e); ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("base"); modelAndView.addObject("error", msg); modelAndView.addObject("exMessage", e.getMessage()); modelAndView.addObject("stackTrace", Arrays.toString(e.getStackTrace())); return modelAndView; } @ExceptionHandler({ DataSourceTableDoesNotExistException.class }) public ModelAndView handleDataSourceTableDoesNotExistException(DataSourceTableDoesNotExistException e) { return handle(e, "A required data source table does not exist. Check your application's configuration."); } @ExceptionHandler({ Exception.class }) public ModelAndView handleException(Exception e) { return handle(e, "An unhandled exception was thrown. The full stack trace is below."); } @ExceptionHandler({ RuntimeException.class }) public ModelAndView handleException(RuntimeException e) { return handle(e, "An unchecked runtime exception was thrown. The full stack trace is below."); } }