1 | // |
---|
2 | // $Id: JUploadException.java 95 2007-05-02 03:27:05Z |
---|
3 | // /C=DE/ST=Baden-Wuerttemberg/O=ISDN4Linux/OU=Fritz |
---|
4 | // Elfert/CN=svn-felfert@isdn4linux.de/emailAddress=fritz@fritz-elfert.de $ |
---|
5 | // |
---|
6 | // jupload - A file upload applet. |
---|
7 | // Copyright 2007 The JUpload Team |
---|
8 | // |
---|
9 | // Created: 2006-05-09 |
---|
10 | // Creator: etienne_sf |
---|
11 | // Last modified: $Date: 2009-11-06 19:07:21 -0200 (Sex, 06 Nov 2009) $ |
---|
12 | // |
---|
13 | // This program is free software; you can redistribute it and/or modify it under |
---|
14 | // the terms of the GNU General Public License as published by the Free Software |
---|
15 | // Foundation; either version 2 of the License, or (at your option) any later |
---|
16 | // version. This program is distributed in the hope that it will be useful, but |
---|
17 | // WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
---|
18 | // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more |
---|
19 | // details. You should have received a copy of the GNU General Public License |
---|
20 | // along with this program; if not, write to the Free Software Foundation, Inc., |
---|
21 | // 675 Mass Ave, Cambridge, MA 02139, USA. |
---|
22 | |
---|
23 | package wjhk.jupload2.exception; |
---|
24 | |
---|
25 | /** |
---|
26 | * A new kind of exceptions. Currently : no other specialization than its name. |
---|
27 | * |
---|
28 | * @author etienne_sf |
---|
29 | * @version $Revision: 887 $ |
---|
30 | */ |
---|
31 | public class JUploadException extends Exception { |
---|
32 | /** A generated serialVersionUID, to avoid warning during compilation */ |
---|
33 | private static final long serialVersionUID = -6386378085666411905L; |
---|
34 | |
---|
35 | private String location = null; |
---|
36 | |
---|
37 | /** |
---|
38 | * Creates a new instance with a specified message. |
---|
39 | * |
---|
40 | * @param message The message to be associated with this instance. |
---|
41 | */ |
---|
42 | public JUploadException(String message) { |
---|
43 | super(message); |
---|
44 | StackTraceElement[] trace = super.getStackTrace(); |
---|
45 | if (trace.length > 0) { |
---|
46 | StackTraceElement se = trace[0]; |
---|
47 | this.location = se.getClassName() + "." + se.getMethodName() |
---|
48 | + " in " + se.getFileName() + ", line " |
---|
49 | + se.getLineNumber(); |
---|
50 | } |
---|
51 | } |
---|
52 | |
---|
53 | /** |
---|
54 | * Creates a new instance with a specified original exception. |
---|
55 | * |
---|
56 | * @param ex The exception that was originally thrown. |
---|
57 | */ |
---|
58 | public JUploadException(Exception ex) { |
---|
59 | super(ex); |
---|
60 | StackTraceElement[] trace = ex.getStackTrace(); |
---|
61 | if (trace.length > 0) { |
---|
62 | StackTraceElement se = trace[0]; |
---|
63 | this.location = se.getClassName() + "." + se.getMethodName() |
---|
64 | + " in " + se.getFileName() + ", line " |
---|
65 | + se.getLineNumber(); |
---|
66 | } |
---|
67 | } |
---|
68 | |
---|
69 | /** |
---|
70 | * Creates a new instance with a specified message and original exception. |
---|
71 | * |
---|
72 | * @param message The message to be associated with this instance. |
---|
73 | * @param ex The exception that was originally thrown. |
---|
74 | */ |
---|
75 | public JUploadException(String message, Throwable ex) { |
---|
76 | super(message, ex); |
---|
77 | StackTraceElement[] trace = ex.getStackTrace(); |
---|
78 | if (trace.length > 0) { |
---|
79 | StackTraceElement se = trace[0]; |
---|
80 | this.location = se.getClassName() + "." + se.getMethodName() |
---|
81 | + " in " + se.getFileName() + ", line " |
---|
82 | + se.getLineNumber(); |
---|
83 | } |
---|
84 | } |
---|
85 | |
---|
86 | /** |
---|
87 | * Retrieves the human readable location of this exception (Class.method, |
---|
88 | * filename, linenumber) |
---|
89 | * |
---|
90 | * @return The location where this exception was thrown. |
---|
91 | */ |
---|
92 | public String getLocation() { |
---|
93 | return (null == this.location) ? "unknown location" : this.location; |
---|
94 | } |
---|
95 | |
---|
96 | /** |
---|
97 | * Returns JUploadExceptionClassName:CauseClassName. For instance:<BR> |
---|
98 | * wjhk.jupload2.exception.JUploadIOException:FileNotFoundException <BR> |
---|
99 | * or<BR> |
---|
100 | * wjhk.jupload2.exception.JUploadIOException (if there is no cause given to |
---|
101 | * the JUploadException constructor). |
---|
102 | * |
---|
103 | * @return The class name(s) that can be displayed in an error message. |
---|
104 | */ |
---|
105 | public String getClassNameAndClause() { |
---|
106 | if (getCause() == null) { |
---|
107 | return this.getClass().getName(); |
---|
108 | } else { |
---|
109 | return this.getClass().getName() + ":" |
---|
110 | + this.getCause().getClass().getName(); |
---|
111 | } |
---|
112 | } |
---|
113 | } |
---|