01: /*
02: * (c) Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Hewlett-Packard Development Company, LP
03: * All rights reserved.
04: *
05: * Redistribution and use in source and binary forms, with or without
06: * modification, are permitted provided that the following conditions
07: * are met:
08: * 1. Redistributions of source code must retain the above copyright
09: * notice, this list of conditions and the following disclaimer.
10: * 2. Redistributions in binary form must reproduce the above copyright
11: * notice, this list of conditions and the following disclaimer in the
12: * documentation and/or other materials provided with the distribution.
13: * 3. The name of the author may not be used to endorse or promote products
14: * derived from this software without specific prior written permission.
15:
16: * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17: * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
18: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19: * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
20: * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21: * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22: * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23: * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24: * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25: * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26:
27: * * $Id: WrappedException.java,v 1.7 2008/01/02 12:09:05 andy_seaborne Exp $
28:
29: AUTHOR: Jeremy J. Carroll
30: */
31: /*
32: * WrappedException.java
33: *
34: * Created on July 10, 2001, 11:44 AM
35: */
36:
37: package com.hp.hpl.jena.rdf.arp.impl;
38:
39: import java.io.IOException;
40:
41: import org.xml.sax.SAXException;
42:
43: /**
44: * Wrap some other exception - being wise to SAXExceptions which
45: * wrap something else.
46: * @author jjc
47:
48: */
49: class WrappedException extends java.lang.RuntimeException {
50: /**
51: *
52: */
53: private static final long serialVersionUID = -4058658905253070902L;
54:
55: /** Creates new WrappedException */
56: WrappedException(SAXException e) {
57: Exception in0 = e.getException();
58: if (in0 == null) {
59: initCause(e);
60: return;
61: }
62: if ((in0 instanceof RuntimeException)
63: || (in0 instanceof SAXException)
64: || (in0 instanceof IOException)) {
65: initCause(in0);
66: return;
67: }
68: initCause(e);
69: }
70:
71: // WrappedException(IOException e) {
72: // initCause(e);
73: // }
74: /** Throw the exception, falling back to be a wrapped SAXParseException.
75: */
76: void throwMe() throws IOException, SAXException {
77: Throwable inner = this .getCause();
78: if (inner instanceof SAXException) {
79: throw (SAXException) inner;
80: }
81: if (inner instanceof IOException) {
82: throw (IOException) inner;
83: }
84: if (inner instanceof RuntimeException) {
85: throw (RuntimeException) inner;
86: }
87: // I don't think this line is reachable:
88: throw new RuntimeException("Supposedly unreacahble code.");
89: }
90:
91: }
|