// ********************************************************************** // // <copyright> // // BBN Technologies // 10 Moulton Street // Cambridge, MA 02138 // (617) 873-8000 // // Copyright (C) BBNT Solutions LLC. All rights reserved. // // </copyright> // ********************************************************************** // // $Source: /cvs/distapps/openmap/src/openmap/com/bbn/openmap/io/FormatException.java,v $ // $RCSfile: FormatException.java,v $ // $Revision: 1.4 $ // $Date: 2004/10/14 18:05:51 $ // $Author: dietrick $ // // ********************************************************************** package com.bbn.openmap.io; import java.io.PrintStream; import java.io.PrintWriter; /** * This class is used for exceptions that result from some format * errors of the data when using the BinaryFile. */ public class FormatException extends Exception { /** nested exception that caused this one */ final private Throwable rootCause; /** * Construct a FormatException without a detail message. */ public FormatException() { super(); rootCause = null; } /** * Construct a FormatException with a detail message. * * @param s the detail message */ public FormatException(String s) { super(s); rootCause = null; } /** * Construct a FormatException with a detail message and root * cause. * * @param s the detail message * @param rootCause the root cause (not null) */ public FormatException(String s, Throwable rootCause) { super(s + ": " + rootCause.getLocalizedMessage()); this.rootCause = rootCause; } /** * Returns the exception that caused this one. * * @return the root exception, or null if there isn't one */ public Throwable getRootCause() { return rootCause; } /** * Prints a backtrace of this exception and the rootCause (if any) * to System.err. */ public void printStackTrace() { super.printStackTrace(); if (rootCause != null) { System.err.println("With Root Cause:"); rootCause.printStackTrace(); } } /** * Prints a backtrace of this exception and the rootCause (if any) * to a stream. * * @param ps the stream to print to */ public void printStackTrace(PrintStream ps) { super.printStackTrace(ps); if (rootCause != null) { ps.println("With Root Cause:"); rootCause.printStackTrace(ps); } } /** * Prints a backtrace of this exception and the rootCause (if any) * to a writer. * * @param pw the writer to print to */ public void printStackTrace(PrintWriter pw) { super.printStackTrace(pw); if (rootCause != null) { pw.println("With Root Cause:"); rootCause.printStackTrace(pw); } } }