/** * <copyright> Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) and others All rights * reserved. This program and the accompanying materials are made available under the terms of the * Eclipse Public License v1.0 which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html Contributors: Martin Taal - Initial API and * implementation </copyright> $Id: TeneoException.java,v 1.2 2008/02/28 07:08:33 mtaal Exp $ */ package org.eclipse.emf.teneo; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; /** * Is used to throw runtime store exceptions. This class offers automatic logging to commons * logging. Note that this class extends RuntimeException, so no forced throws and catch statements. * Although there are very differing views on this topic but it is our experience that to many * checked exceptions only distract the programmer and have no added value. * * @author <a href="mailto:mtaal@elver.org">Martin Taal</a> * @version $Revision: 1.2 $ */ public class TeneoException extends RuntimeException { /** * Serializable id */ private static final long serialVersionUID = 7433341056815136417L; /** * The constructor, logs the exception also */ public TeneoException(String msg, Throwable cause) { super(msg, cause); // and log it getLogger().error(msg, cause); } /** * The constructor, logs the exception also */ public TeneoException(String msg) { super(msg); // and log it getLogger().error(msg, this); } /** Get the class specific logger */ private Log getLogger() { return LogFactory.getLog(this.getClass()); } }