KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > smallsql > database > SmallSQLException


1 /* =============================================================
2  * SmallSQL : a free Java DBMS library for the Java(tm) platform
3  * =============================================================
4  *
5  * (C) Copyright 2004-2006, by Volker Berlin.
6  *
7  * Project Info: http://www.smallsql.de/
8  *
9  * This library is free software; you can redistribute it and/or modify it
10  * under the terms of the GNU Lesser General Public License as published by
11  * the Free Software Foundation; either version 2.1 of the License, or
12  * (at your option) any later version.
13  *
14  * This library is distributed in the hope that it will be useful, but
15  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16  * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
17  * License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public
20  * License along with this library; if not, write to the Free Software
21  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
22  * USA.
23  *
24  * [Java is a trademark or registered trademark of Sun Microsystems, Inc.
25  * in the United States and other countries.]
26  *
27  * ---------------
28  * SmallSQLException.java
29  * ---------------
30  * Author: Volker Berlin
31  *
32  */

33 package smallsql.database;
34
35 import java.sql.*;
36 import java.io.*;
37
38 /**
39  * @author Volker Berlin
40  *
41  */

42 class SmallSQLException extends SQLException {
43
44     private static final long serialVersionUID = -1683756623665114L;
45     private boolean isInit;
46
47     
48     /**
49      *
50      */

51     SmallSQLException(Throwable JavaDoc throwable) {
52         super( "[SmallSQL]" + getMsg(throwable), "01000", 0);
53         super.initCause(throwable);
54         init();
55     }
56     
57     
58     SmallSQLException(String JavaDoc msg, String JavaDoc sqlState, int vendorCode) {
59         super( "[SmallSQL]" + msg, sqlState, vendorCode);
60         init();
61     }
62
63     
64     private void init(){
65         this.isInit = true;
66         PrintStream ps = DriverManager.getLogStream();
67         if(ps != null) this.printStackTrace(ps);
68     }
69     
70     
71     private static String JavaDoc getMsg(Throwable JavaDoc throwable) {
72         String JavaDoc msg = throwable.getMessage();
73         if(msg == null || msg.length() < 20){
74             String JavaDoc msg2 = throwable.getClass().getName();
75             msg2 = msg2.substring(msg2.lastIndexOf('.')+1);
76             if(msg != null)
77                 msg2 = msg2 + ':' + msg;
78             return msg2;
79         }
80         return throwable.getMessage();
81     }
82     
83     
84     public void printStackTrace(){
85         if(!isInit) return;
86         super.printStackTrace();
87     }
88     
89
90     public void printStackTrace(PrintStream ps){
91         if(!isInit) return;
92         super.printStackTrace(ps);
93     }
94     
95
96     public void printStackTrace(PrintWriter pw){
97         if(!isInit) return;
98         super.printStackTrace(pw);
99     }
100 }
101
Popular Tags