/* * Sistema de Ouvidoria: um canal através do qual os usuários * podem encaminhar suas reclamações, elogios e sugestões. * * Copyright (C) 2011 SERPRO * * Este programa é software livre; você pode redistribuí-lo e/ou * modificá-lo sob os termos da Licença Pública Geral GNU, conforme * publicada pela Free Software Foundation; tanto a versão 2 da * Licença como (a seu critério) qualquer versão mais nova. * * Este programa é distribuído na expectativa de ser útil, mas SEM * QUALQUER GARANTIA; sem mesmo a garantia implícita de * COMERCIALIZAÇÃO ou de ADEQUAÇÃO A QUALQUER PROPÓSITO EM * PARTICULAR. Consulte a Licença Pública Geral GNU para obter mais * detalhes. * * Você deve ter recebido uma cópia da Licença Pública Geral GNU, * sob o título "LICENCA.txt", junto com esse programa. Se não, * acesse o Portal do Software Público Brasileiro no endereço * http://www.softwarepublico.gov.br/ ou escreva para a Fundação do * Software Livre (FSF) Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02111-1301, USA. * * Contatos através do seguinte endereço internet: * http://www.serpro.gov.br/sistemaouvidoria/ */ package com.lowagie.text; /** * Signals that an error has occurred in a <CODE>Document</CODE>. * * @see BadElementException * @see Document * @see DocWriter * @see DocListener */ public class DocumentException extends Exception { private Exception ex; /** * Creates a Document exception. * @param ex an exception that has to be turned into a DocumentException */ public DocumentException(Exception ex) { this.ex = ex; } // constructors /** * Constructs a <CODE>DocumentException</CODE> whithout a message. */ public DocumentException() { super(); } /** * Constructs a <code>DocumentException</code> with a message. * * @param message a message describing the exception */ public DocumentException(String message) { super(message); } /** * We print the message of the checked exception * @return the error message */ public String getMessage() { if (ex == null) return super.getMessage(); else return ex.getMessage(); } /** * and make sure we also produce a localized version * @return a localized message */ public String getLocalizedMessage() { if (ex == null) return super.getLocalizedMessage(); else return ex.getLocalizedMessage(); } /** * The toString() is changed to be prefixed with ExceptionConverter * @return the String version of the exception */ public String toString() { if (ex == null) return super.toString(); else return split(getClass().getName()) + ": " + ex; } /** we have to override this as well */ public void printStackTrace() { printStackTrace(System.err); } /** * here we prefix, with s.print(), not s.println(), the stack * trace with "ExceptionConverter:" * @param s a printstream object */ public void printStackTrace(java.io.PrintStream s) { if (ex == null) super.printStackTrace(s); else { synchronized (s) { s.print(split(getClass().getName()) + ": "); ex.printStackTrace(s); } } } /** * Again, we prefix the stack trace with "ExceptionConverter:" * @param s A PrintWriter object */ public void printStackTrace(java.io.PrintWriter s) { if (ex == null) super.printStackTrace(s); else { synchronized (s) { s.print(split(getClass().getName()) + ": "); ex.printStackTrace(s); } } } /** * Removes everything in a String that comes before a '.' * @param s the original string * @return the part that comes after the dot */ private static String split(String s) { int i = s.lastIndexOf('.'); if (i < 0) return s; else return s.substring(i + 1); } /** requests to fill in the stack trace we will have to ignore. * We can't throw an exception here, because this method * is called by the constructor of Throwable */ // public Throwable fillInStackTrace() { // if (ex == null) // return super.fillInStackTrace(); // else // return this; // } }