comparison libs/commons-math-2.1/docs/apidocs/src-html/org/apache/commons/math/MathRuntimeException.html @ 13:cbf34dd4d7e6

commons-math-2.1 added
author dwinter
date Tue, 04 Jan 2011 10:02:07 +0100
parents
children
comparison
equal deleted inserted replaced
12:970d26a94fb7 13:cbf34dd4d7e6
1 <HTML>
2 <BODY BGCOLOR="white">
3 <PRE>
4 <FONT color="green">001</FONT> /*<a name="line.1"></a>
5 <FONT color="green">002</FONT> * Licensed to the Apache Software Foundation (ASF) under one or more<a name="line.2"></a>
6 <FONT color="green">003</FONT> * contributor license agreements. See the NOTICE file distributed with<a name="line.3"></a>
7 <FONT color="green">004</FONT> * this work for additional information regarding copyright ownership.<a name="line.4"></a>
8 <FONT color="green">005</FONT> * The ASF licenses this file to You under the Apache License, Version 2.0<a name="line.5"></a>
9 <FONT color="green">006</FONT> * (the "License"); you may not use this file except in compliance with<a name="line.6"></a>
10 <FONT color="green">007</FONT> * the License. You may obtain a copy of the License at<a name="line.7"></a>
11 <FONT color="green">008</FONT> *<a name="line.8"></a>
12 <FONT color="green">009</FONT> * http://www.apache.org/licenses/LICENSE-2.0<a name="line.9"></a>
13 <FONT color="green">010</FONT> *<a name="line.10"></a>
14 <FONT color="green">011</FONT> * Unless required by applicable law or agreed to in writing, software<a name="line.11"></a>
15 <FONT color="green">012</FONT> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.12"></a>
16 <FONT color="green">013</FONT> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.13"></a>
17 <FONT color="green">014</FONT> * See the License for the specific language governing permissions and<a name="line.14"></a>
18 <FONT color="green">015</FONT> * limitations under the License.<a name="line.15"></a>
19 <FONT color="green">016</FONT> */<a name="line.16"></a>
20 <FONT color="green">017</FONT> package org.apache.commons.math;<a name="line.17"></a>
21 <FONT color="green">018</FONT> <a name="line.18"></a>
22 <FONT color="green">019</FONT> import java.io.EOFException;<a name="line.19"></a>
23 <FONT color="green">020</FONT> import java.io.IOException;<a name="line.20"></a>
24 <FONT color="green">021</FONT> import java.io.PrintStream;<a name="line.21"></a>
25 <FONT color="green">022</FONT> import java.io.PrintWriter;<a name="line.22"></a>
26 <FONT color="green">023</FONT> import java.text.MessageFormat;<a name="line.23"></a>
27 <FONT color="green">024</FONT> import java.text.ParseException;<a name="line.24"></a>
28 <FONT color="green">025</FONT> import java.util.ConcurrentModificationException;<a name="line.25"></a>
29 <FONT color="green">026</FONT> import java.util.Locale;<a name="line.26"></a>
30 <FONT color="green">027</FONT> import java.util.MissingResourceException;<a name="line.27"></a>
31 <FONT color="green">028</FONT> import java.util.NoSuchElementException;<a name="line.28"></a>
32 <FONT color="green">029</FONT> import java.util.ResourceBundle;<a name="line.29"></a>
33 <FONT color="green">030</FONT> <a name="line.30"></a>
34 <FONT color="green">031</FONT> /**<a name="line.31"></a>
35 <FONT color="green">032</FONT> * Base class for commons-math unchecked exceptions.<a name="line.32"></a>
36 <FONT color="green">033</FONT> *<a name="line.33"></a>
37 <FONT color="green">034</FONT> * @version $Revision: 822850 $ $Date: 2009-10-07 14:56:42 -0400 (Wed, 07 Oct 2009) $<a name="line.34"></a>
38 <FONT color="green">035</FONT> * @since 2.0<a name="line.35"></a>
39 <FONT color="green">036</FONT> */<a name="line.36"></a>
40 <FONT color="green">037</FONT> public class MathRuntimeException extends RuntimeException {<a name="line.37"></a>
41 <FONT color="green">038</FONT> <a name="line.38"></a>
42 <FONT color="green">039</FONT> /** Serializable version identifier. */<a name="line.39"></a>
43 <FONT color="green">040</FONT> private static final long serialVersionUID = -5128983364075381060L;<a name="line.40"></a>
44 <FONT color="green">041</FONT> <a name="line.41"></a>
45 <FONT color="green">042</FONT> /**<a name="line.42"></a>
46 <FONT color="green">043</FONT> * Pattern used to build the message.<a name="line.43"></a>
47 <FONT color="green">044</FONT> */<a name="line.44"></a>
48 <FONT color="green">045</FONT> private final String pattern;<a name="line.45"></a>
49 <FONT color="green">046</FONT> <a name="line.46"></a>
50 <FONT color="green">047</FONT> /**<a name="line.47"></a>
51 <FONT color="green">048</FONT> * Arguments used to build the message.<a name="line.48"></a>
52 <FONT color="green">049</FONT> */<a name="line.49"></a>
53 <FONT color="green">050</FONT> private final Object[] arguments;<a name="line.50"></a>
54 <FONT color="green">051</FONT> <a name="line.51"></a>
55 <FONT color="green">052</FONT> /**<a name="line.52"></a>
56 <FONT color="green">053</FONT> * Constructs a new &lt;code&gt;MathRuntimeException&lt;/code&gt; with specified<a name="line.53"></a>
57 <FONT color="green">054</FONT> * formatted detail message.<a name="line.54"></a>
58 <FONT color="green">055</FONT> * Message formatting is delegated to {@link java.text.MessageFormat}.<a name="line.55"></a>
59 <FONT color="green">056</FONT> * @param pattern format specifier<a name="line.56"></a>
60 <FONT color="green">057</FONT> * @param arguments format arguments<a name="line.57"></a>
61 <FONT color="green">058</FONT> */<a name="line.58"></a>
62 <FONT color="green">059</FONT> public MathRuntimeException(final String pattern, final Object ... arguments) {<a name="line.59"></a>
63 <FONT color="green">060</FONT> this.pattern = pattern;<a name="line.60"></a>
64 <FONT color="green">061</FONT> this.arguments = (arguments == null) ? new Object[0] : arguments.clone();<a name="line.61"></a>
65 <FONT color="green">062</FONT> }<a name="line.62"></a>
66 <FONT color="green">063</FONT> <a name="line.63"></a>
67 <FONT color="green">064</FONT> /**<a name="line.64"></a>
68 <FONT color="green">065</FONT> * Constructs a new &lt;code&gt;MathRuntimeException&lt;/code&gt; with specified<a name="line.65"></a>
69 <FONT color="green">066</FONT> * nested &lt;code&gt;Throwable&lt;/code&gt; root cause.<a name="line.66"></a>
70 <FONT color="green">067</FONT> *<a name="line.67"></a>
71 <FONT color="green">068</FONT> * @param rootCause the exception or error that caused this exception<a name="line.68"></a>
72 <FONT color="green">069</FONT> * to be thrown.<a name="line.69"></a>
73 <FONT color="green">070</FONT> */<a name="line.70"></a>
74 <FONT color="green">071</FONT> public MathRuntimeException(final Throwable rootCause) {<a name="line.71"></a>
75 <FONT color="green">072</FONT> super(rootCause);<a name="line.72"></a>
76 <FONT color="green">073</FONT> this.pattern = getMessage();<a name="line.73"></a>
77 <FONT color="green">074</FONT> this.arguments = new Object[0];<a name="line.74"></a>
78 <FONT color="green">075</FONT> }<a name="line.75"></a>
79 <FONT color="green">076</FONT> <a name="line.76"></a>
80 <FONT color="green">077</FONT> /**<a name="line.77"></a>
81 <FONT color="green">078</FONT> * Constructs a new &lt;code&gt;MathRuntimeException&lt;/code&gt; with specified<a name="line.78"></a>
82 <FONT color="green">079</FONT> * formatted detail message and nested &lt;code&gt;Throwable&lt;/code&gt; root cause.<a name="line.79"></a>
83 <FONT color="green">080</FONT> * Message formatting is delegated to {@link java.text.MessageFormat}.<a name="line.80"></a>
84 <FONT color="green">081</FONT> * @param rootCause the exception or error that caused this exception<a name="line.81"></a>
85 <FONT color="green">082</FONT> * to be thrown.<a name="line.82"></a>
86 <FONT color="green">083</FONT> * @param pattern format specifier<a name="line.83"></a>
87 <FONT color="green">084</FONT> * @param arguments format arguments<a name="line.84"></a>
88 <FONT color="green">085</FONT> */<a name="line.85"></a>
89 <FONT color="green">086</FONT> public MathRuntimeException(final Throwable rootCause,<a name="line.86"></a>
90 <FONT color="green">087</FONT> final String pattern, final Object ... arguments) {<a name="line.87"></a>
91 <FONT color="green">088</FONT> super(rootCause);<a name="line.88"></a>
92 <FONT color="green">089</FONT> this.pattern = pattern;<a name="line.89"></a>
93 <FONT color="green">090</FONT> this.arguments = (arguments == null) ? new Object[0] : arguments.clone();<a name="line.90"></a>
94 <FONT color="green">091</FONT> }<a name="line.91"></a>
95 <FONT color="green">092</FONT> <a name="line.92"></a>
96 <FONT color="green">093</FONT> /**<a name="line.93"></a>
97 <FONT color="green">094</FONT> * Translate a string to a given locale.<a name="line.94"></a>
98 <FONT color="green">095</FONT> * @param s string to translate<a name="line.95"></a>
99 <FONT color="green">096</FONT> * @param locale locale into which to translate the string<a name="line.96"></a>
100 <FONT color="green">097</FONT> * @return translated string or original string<a name="line.97"></a>
101 <FONT color="green">098</FONT> * for unsupported locales or unknown strings<a name="line.98"></a>
102 <FONT color="green">099</FONT> */<a name="line.99"></a>
103 <FONT color="green">100</FONT> private static String translate(final String s, final Locale locale) {<a name="line.100"></a>
104 <FONT color="green">101</FONT> try {<a name="line.101"></a>
105 <FONT color="green">102</FONT> ResourceBundle bundle =<a name="line.102"></a>
106 <FONT color="green">103</FONT> ResourceBundle.getBundle("org.apache.commons.math.MessagesResources", locale);<a name="line.103"></a>
107 <FONT color="green">104</FONT> if (bundle.getLocale().getLanguage().equals(locale.getLanguage())) {<a name="line.104"></a>
108 <FONT color="green">105</FONT> // the value of the resource is the translated string<a name="line.105"></a>
109 <FONT color="green">106</FONT> return bundle.getString(s);<a name="line.106"></a>
110 <FONT color="green">107</FONT> }<a name="line.107"></a>
111 <FONT color="green">108</FONT> <a name="line.108"></a>
112 <FONT color="green">109</FONT> } catch (MissingResourceException mre) {<a name="line.109"></a>
113 <FONT color="green">110</FONT> // do nothing here<a name="line.110"></a>
114 <FONT color="green">111</FONT> }<a name="line.111"></a>
115 <FONT color="green">112</FONT> <a name="line.112"></a>
116 <FONT color="green">113</FONT> // the locale is not supported or the resource is unknown<a name="line.113"></a>
117 <FONT color="green">114</FONT> // don't translate and fall back to using the string as is<a name="line.114"></a>
118 <FONT color="green">115</FONT> return s;<a name="line.115"></a>
119 <FONT color="green">116</FONT> <a name="line.116"></a>
120 <FONT color="green">117</FONT> }<a name="line.117"></a>
121 <FONT color="green">118</FONT> <a name="line.118"></a>
122 <FONT color="green">119</FONT> /**<a name="line.119"></a>
123 <FONT color="green">120</FONT> * Builds a message string by from a pattern and its arguments.<a name="line.120"></a>
124 <FONT color="green">121</FONT> * @param locale Locale in which the message should be translated<a name="line.121"></a>
125 <FONT color="green">122</FONT> * @param pattern format specifier<a name="line.122"></a>
126 <FONT color="green">123</FONT> * @param arguments format arguments<a name="line.123"></a>
127 <FONT color="green">124</FONT> * @return a message string<a name="line.124"></a>
128 <FONT color="green">125</FONT> */<a name="line.125"></a>
129 <FONT color="green">126</FONT> private static String buildMessage(final Locale locale, final String pattern,<a name="line.126"></a>
130 <FONT color="green">127</FONT> final Object ... arguments) {<a name="line.127"></a>
131 <FONT color="green">128</FONT> return (pattern == null) ? "" : new MessageFormat(translate(pattern, locale), locale).format(arguments);<a name="line.128"></a>
132 <FONT color="green">129</FONT> }<a name="line.129"></a>
133 <FONT color="green">130</FONT> <a name="line.130"></a>
134 <FONT color="green">131</FONT> /** Gets the pattern used to build the message of this throwable.<a name="line.131"></a>
135 <FONT color="green">132</FONT> *<a name="line.132"></a>
136 <FONT color="green">133</FONT> * @return the pattern used to build the message of this throwable<a name="line.133"></a>
137 <FONT color="green">134</FONT> */<a name="line.134"></a>
138 <FONT color="green">135</FONT> public String getPattern() {<a name="line.135"></a>
139 <FONT color="green">136</FONT> return pattern;<a name="line.136"></a>
140 <FONT color="green">137</FONT> }<a name="line.137"></a>
141 <FONT color="green">138</FONT> <a name="line.138"></a>
142 <FONT color="green">139</FONT> /** Gets the arguments used to build the message of this throwable.<a name="line.139"></a>
143 <FONT color="green">140</FONT> *<a name="line.140"></a>
144 <FONT color="green">141</FONT> * @return the arguments used to build the message of this throwable<a name="line.141"></a>
145 <FONT color="green">142</FONT> */<a name="line.142"></a>
146 <FONT color="green">143</FONT> public Object[] getArguments() {<a name="line.143"></a>
147 <FONT color="green">144</FONT> return arguments.clone();<a name="line.144"></a>
148 <FONT color="green">145</FONT> }<a name="line.145"></a>
149 <FONT color="green">146</FONT> <a name="line.146"></a>
150 <FONT color="green">147</FONT> /** Gets the message in a specified locale.<a name="line.147"></a>
151 <FONT color="green">148</FONT> *<a name="line.148"></a>
152 <FONT color="green">149</FONT> * @param locale Locale in which the message should be translated<a name="line.149"></a>
153 <FONT color="green">150</FONT> *<a name="line.150"></a>
154 <FONT color="green">151</FONT> * @return localized message<a name="line.151"></a>
155 <FONT color="green">152</FONT> */<a name="line.152"></a>
156 <FONT color="green">153</FONT> public String getMessage(final Locale locale) {<a name="line.153"></a>
157 <FONT color="green">154</FONT> return buildMessage(locale, pattern, arguments);<a name="line.154"></a>
158 <FONT color="green">155</FONT> }<a name="line.155"></a>
159 <FONT color="green">156</FONT> <a name="line.156"></a>
160 <FONT color="green">157</FONT> /** {@inheritDoc} */<a name="line.157"></a>
161 <FONT color="green">158</FONT> @Override<a name="line.158"></a>
162 <FONT color="green">159</FONT> public String getMessage() {<a name="line.159"></a>
163 <FONT color="green">160</FONT> return getMessage(Locale.US);<a name="line.160"></a>
164 <FONT color="green">161</FONT> }<a name="line.161"></a>
165 <FONT color="green">162</FONT> <a name="line.162"></a>
166 <FONT color="green">163</FONT> /** {@inheritDoc} */<a name="line.163"></a>
167 <FONT color="green">164</FONT> @Override<a name="line.164"></a>
168 <FONT color="green">165</FONT> public String getLocalizedMessage() {<a name="line.165"></a>
169 <FONT color="green">166</FONT> return getMessage(Locale.getDefault());<a name="line.166"></a>
170 <FONT color="green">167</FONT> }<a name="line.167"></a>
171 <FONT color="green">168</FONT> <a name="line.168"></a>
172 <FONT color="green">169</FONT> /**<a name="line.169"></a>
173 <FONT color="green">170</FONT> * Prints the stack trace of this exception to the standard error stream.<a name="line.170"></a>
174 <FONT color="green">171</FONT> */<a name="line.171"></a>
175 <FONT color="green">172</FONT> @Override<a name="line.172"></a>
176 <FONT color="green">173</FONT> public void printStackTrace() {<a name="line.173"></a>
177 <FONT color="green">174</FONT> printStackTrace(System.err);<a name="line.174"></a>
178 <FONT color="green">175</FONT> }<a name="line.175"></a>
179 <FONT color="green">176</FONT> <a name="line.176"></a>
180 <FONT color="green">177</FONT> /**<a name="line.177"></a>
181 <FONT color="green">178</FONT> * Prints the stack trace of this exception to the specified stream.<a name="line.178"></a>
182 <FONT color="green">179</FONT> *<a name="line.179"></a>
183 <FONT color="green">180</FONT> * @param out the &lt;code&gt;PrintStream&lt;/code&gt; to use for output<a name="line.180"></a>
184 <FONT color="green">181</FONT> */<a name="line.181"></a>
185 <FONT color="green">182</FONT> @Override<a name="line.182"></a>
186 <FONT color="green">183</FONT> public void printStackTrace(final PrintStream out) {<a name="line.183"></a>
187 <FONT color="green">184</FONT> synchronized (out) {<a name="line.184"></a>
188 <FONT color="green">185</FONT> PrintWriter pw = new PrintWriter(out, false);<a name="line.185"></a>
189 <FONT color="green">186</FONT> printStackTrace(pw);<a name="line.186"></a>
190 <FONT color="green">187</FONT> // Flush the PrintWriter before it's GC'ed.<a name="line.187"></a>
191 <FONT color="green">188</FONT> pw.flush();<a name="line.188"></a>
192 <FONT color="green">189</FONT> }<a name="line.189"></a>
193 <FONT color="green">190</FONT> }<a name="line.190"></a>
194 <FONT color="green">191</FONT> <a name="line.191"></a>
195 <FONT color="green">192</FONT> /**<a name="line.192"></a>
196 <FONT color="green">193</FONT> * Constructs a new &lt;code&gt;ArithmeticException&lt;/code&gt; with specified formatted detail message.<a name="line.193"></a>
197 <FONT color="green">194</FONT> * Message formatting is delegated to {@link java.text.MessageFormat}.<a name="line.194"></a>
198 <FONT color="green">195</FONT> * @param pattern format specifier<a name="line.195"></a>
199 <FONT color="green">196</FONT> * @param arguments format arguments<a name="line.196"></a>
200 <FONT color="green">197</FONT> * @return built exception<a name="line.197"></a>
201 <FONT color="green">198</FONT> */<a name="line.198"></a>
202 <FONT color="green">199</FONT> public static ArithmeticException createArithmeticException(final String pattern,<a name="line.199"></a>
203 <FONT color="green">200</FONT> final Object ... arguments) {<a name="line.200"></a>
204 <FONT color="green">201</FONT> return new ArithmeticException() {<a name="line.201"></a>
205 <FONT color="green">202</FONT> <a name="line.202"></a>
206 <FONT color="green">203</FONT> /** Serializable version identifier. */<a name="line.203"></a>
207 <FONT color="green">204</FONT> private static final long serialVersionUID = 7705628723242533939L;<a name="line.204"></a>
208 <FONT color="green">205</FONT> <a name="line.205"></a>
209 <FONT color="green">206</FONT> /** {@inheritDoc} */<a name="line.206"></a>
210 <FONT color="green">207</FONT> @Override<a name="line.207"></a>
211 <FONT color="green">208</FONT> public String getMessage() {<a name="line.208"></a>
212 <FONT color="green">209</FONT> return buildMessage(Locale.US, pattern, arguments);<a name="line.209"></a>
213 <FONT color="green">210</FONT> }<a name="line.210"></a>
214 <FONT color="green">211</FONT> <a name="line.211"></a>
215 <FONT color="green">212</FONT> /** {@inheritDoc} */<a name="line.212"></a>
216 <FONT color="green">213</FONT> @Override<a name="line.213"></a>
217 <FONT color="green">214</FONT> public String getLocalizedMessage() {<a name="line.214"></a>
218 <FONT color="green">215</FONT> return buildMessage(Locale.getDefault(), pattern, arguments);<a name="line.215"></a>
219 <FONT color="green">216</FONT> }<a name="line.216"></a>
220 <FONT color="green">217</FONT> <a name="line.217"></a>
221 <FONT color="green">218</FONT> };<a name="line.218"></a>
222 <FONT color="green">219</FONT> }<a name="line.219"></a>
223 <FONT color="green">220</FONT> <a name="line.220"></a>
224 <FONT color="green">221</FONT> /**<a name="line.221"></a>
225 <FONT color="green">222</FONT> * Constructs a new &lt;code&gt;ArrayIndexOutOfBoundsException&lt;/code&gt; with specified formatted detail message.<a name="line.222"></a>
226 <FONT color="green">223</FONT> * Message formatting is delegated to {@link java.text.MessageFormat}.<a name="line.223"></a>
227 <FONT color="green">224</FONT> * @param pattern format specifier<a name="line.224"></a>
228 <FONT color="green">225</FONT> * @param arguments format arguments<a name="line.225"></a>
229 <FONT color="green">226</FONT> * @return built exception<a name="line.226"></a>
230 <FONT color="green">227</FONT> */<a name="line.227"></a>
231 <FONT color="green">228</FONT> public static ArrayIndexOutOfBoundsException createArrayIndexOutOfBoundsException(final String pattern,<a name="line.228"></a>
232 <FONT color="green">229</FONT> final Object ... arguments) {<a name="line.229"></a>
233 <FONT color="green">230</FONT> return new ArrayIndexOutOfBoundsException() {<a name="line.230"></a>
234 <FONT color="green">231</FONT> <a name="line.231"></a>
235 <FONT color="green">232</FONT> /** Serializable version identifier. */<a name="line.232"></a>
236 <FONT color="green">233</FONT> private static final long serialVersionUID = -3394748305449283486L;<a name="line.233"></a>
237 <FONT color="green">234</FONT> <a name="line.234"></a>
238 <FONT color="green">235</FONT> /** {@inheritDoc} */<a name="line.235"></a>
239 <FONT color="green">236</FONT> @Override<a name="line.236"></a>
240 <FONT color="green">237</FONT> public String getMessage() {<a name="line.237"></a>
241 <FONT color="green">238</FONT> return buildMessage(Locale.US, pattern, arguments);<a name="line.238"></a>
242 <FONT color="green">239</FONT> }<a name="line.239"></a>
243 <FONT color="green">240</FONT> <a name="line.240"></a>
244 <FONT color="green">241</FONT> /** {@inheritDoc} */<a name="line.241"></a>
245 <FONT color="green">242</FONT> @Override<a name="line.242"></a>
246 <FONT color="green">243</FONT> public String getLocalizedMessage() {<a name="line.243"></a>
247 <FONT color="green">244</FONT> return buildMessage(Locale.getDefault(), pattern, arguments);<a name="line.244"></a>
248 <FONT color="green">245</FONT> }<a name="line.245"></a>
249 <FONT color="green">246</FONT> <a name="line.246"></a>
250 <FONT color="green">247</FONT> };<a name="line.247"></a>
251 <FONT color="green">248</FONT> }<a name="line.248"></a>
252 <FONT color="green">249</FONT> <a name="line.249"></a>
253 <FONT color="green">250</FONT> /**<a name="line.250"></a>
254 <FONT color="green">251</FONT> * Constructs a new &lt;code&gt;EOFException&lt;/code&gt; with specified formatted detail message.<a name="line.251"></a>
255 <FONT color="green">252</FONT> * Message formatting is delegated to {@link java.text.MessageFormat}.<a name="line.252"></a>
256 <FONT color="green">253</FONT> * @param pattern format specifier<a name="line.253"></a>
257 <FONT color="green">254</FONT> * @param arguments format arguments<a name="line.254"></a>
258 <FONT color="green">255</FONT> * @return built exception<a name="line.255"></a>
259 <FONT color="green">256</FONT> */<a name="line.256"></a>
260 <FONT color="green">257</FONT> public static EOFException createEOFException(final String pattern,<a name="line.257"></a>
261 <FONT color="green">258</FONT> final Object ... arguments) {<a name="line.258"></a>
262 <FONT color="green">259</FONT> return new EOFException() {<a name="line.259"></a>
263 <FONT color="green">260</FONT> <a name="line.260"></a>
264 <FONT color="green">261</FONT> /** Serializable version identifier. */<a name="line.261"></a>
265 <FONT color="green">262</FONT> private static final long serialVersionUID = 279461544586092584L;<a name="line.262"></a>
266 <FONT color="green">263</FONT> <a name="line.263"></a>
267 <FONT color="green">264</FONT> /** {@inheritDoc} */<a name="line.264"></a>
268 <FONT color="green">265</FONT> @Override<a name="line.265"></a>
269 <FONT color="green">266</FONT> public String getMessage() {<a name="line.266"></a>
270 <FONT color="green">267</FONT> return buildMessage(Locale.US, pattern, arguments);<a name="line.267"></a>
271 <FONT color="green">268</FONT> }<a name="line.268"></a>
272 <FONT color="green">269</FONT> <a name="line.269"></a>
273 <FONT color="green">270</FONT> /** {@inheritDoc} */<a name="line.270"></a>
274 <FONT color="green">271</FONT> @Override<a name="line.271"></a>
275 <FONT color="green">272</FONT> public String getLocalizedMessage() {<a name="line.272"></a>
276 <FONT color="green">273</FONT> return buildMessage(Locale.getDefault(), pattern, arguments);<a name="line.273"></a>
277 <FONT color="green">274</FONT> }<a name="line.274"></a>
278 <FONT color="green">275</FONT> <a name="line.275"></a>
279 <FONT color="green">276</FONT> };<a name="line.276"></a>
280 <FONT color="green">277</FONT> }<a name="line.277"></a>
281 <FONT color="green">278</FONT> <a name="line.278"></a>
282 <FONT color="green">279</FONT> /**<a name="line.279"></a>
283 <FONT color="green">280</FONT> * Constructs a new &lt;code&gt;IOException&lt;/code&gt; with specified nested<a name="line.280"></a>
284 <FONT color="green">281</FONT> * &lt;code&gt;Throwable&lt;/code&gt; root cause.<a name="line.281"></a>
285 <FONT color="green">282</FONT> * &lt;p&gt;This factory method allows chaining of other exceptions within an<a name="line.282"></a>
286 <FONT color="green">283</FONT> * &lt;code&gt;IOException&lt;/code&gt; even for Java 5. The constructor for<a name="line.283"></a>
287 <FONT color="green">284</FONT> * &lt;code&gt;IOException&lt;/code&gt; with a cause parameter was introduced only<a name="line.284"></a>
288 <FONT color="green">285</FONT> * with Java 6.&lt;/p&gt;<a name="line.285"></a>
289 <FONT color="green">286</FONT> * @param rootCause the exception or error that caused this exception<a name="line.286"></a>
290 <FONT color="green">287</FONT> * to be thrown.<a name="line.287"></a>
291 <FONT color="green">288</FONT> * @return built exception<a name="line.288"></a>
292 <FONT color="green">289</FONT> */<a name="line.289"></a>
293 <FONT color="green">290</FONT> public static IOException createIOException(final Throwable rootCause) {<a name="line.290"></a>
294 <FONT color="green">291</FONT> IOException ioe = new IOException(rootCause.getLocalizedMessage());<a name="line.291"></a>
295 <FONT color="green">292</FONT> ioe.initCause(rootCause);<a name="line.292"></a>
296 <FONT color="green">293</FONT> return ioe;<a name="line.293"></a>
297 <FONT color="green">294</FONT> }<a name="line.294"></a>
298 <FONT color="green">295</FONT> <a name="line.295"></a>
299 <FONT color="green">296</FONT> /**<a name="line.296"></a>
300 <FONT color="green">297</FONT> * Constructs a new &lt;code&gt;IllegalArgumentException&lt;/code&gt; with specified formatted detail message.<a name="line.297"></a>
301 <FONT color="green">298</FONT> * Message formatting is delegated to {@link java.text.MessageFormat}.<a name="line.298"></a>
302 <FONT color="green">299</FONT> * @param pattern format specifier<a name="line.299"></a>
303 <FONT color="green">300</FONT> * @param arguments format arguments<a name="line.300"></a>
304 <FONT color="green">301</FONT> * @return built exception<a name="line.301"></a>
305 <FONT color="green">302</FONT> */<a name="line.302"></a>
306 <FONT color="green">303</FONT> public static IllegalArgumentException createIllegalArgumentException(final String pattern,<a name="line.303"></a>
307 <FONT color="green">304</FONT> final Object ... arguments) {<a name="line.304"></a>
308 <FONT color="green">305</FONT> return new IllegalArgumentException() {<a name="line.305"></a>
309 <FONT color="green">306</FONT> <a name="line.306"></a>
310 <FONT color="green">307</FONT> /** Serializable version identifier. */<a name="line.307"></a>
311 <FONT color="green">308</FONT> private static final long serialVersionUID = -6555453980658317913L;<a name="line.308"></a>
312 <FONT color="green">309</FONT> <a name="line.309"></a>
313 <FONT color="green">310</FONT> /** {@inheritDoc} */<a name="line.310"></a>
314 <FONT color="green">311</FONT> @Override<a name="line.311"></a>
315 <FONT color="green">312</FONT> public String getMessage() {<a name="line.312"></a>
316 <FONT color="green">313</FONT> return buildMessage(Locale.US, pattern, arguments);<a name="line.313"></a>
317 <FONT color="green">314</FONT> }<a name="line.314"></a>
318 <FONT color="green">315</FONT> <a name="line.315"></a>
319 <FONT color="green">316</FONT> /** {@inheritDoc} */<a name="line.316"></a>
320 <FONT color="green">317</FONT> @Override<a name="line.317"></a>
321 <FONT color="green">318</FONT> public String getLocalizedMessage() {<a name="line.318"></a>
322 <FONT color="green">319</FONT> return buildMessage(Locale.getDefault(), pattern, arguments);<a name="line.319"></a>
323 <FONT color="green">320</FONT> }<a name="line.320"></a>
324 <FONT color="green">321</FONT> <a name="line.321"></a>
325 <FONT color="green">322</FONT> };<a name="line.322"></a>
326 <FONT color="green">323</FONT> }<a name="line.323"></a>
327 <FONT color="green">324</FONT> <a name="line.324"></a>
328 <FONT color="green">325</FONT> /**<a name="line.325"></a>
329 <FONT color="green">326</FONT> * Constructs a new &lt;code&gt;IllegalArgumentException&lt;/code&gt; with specified nested<a name="line.326"></a>
330 <FONT color="green">327</FONT> * &lt;code&gt;Throwable&lt;/code&gt; root cause.<a name="line.327"></a>
331 <FONT color="green">328</FONT> * @param rootCause the exception or error that caused this exception<a name="line.328"></a>
332 <FONT color="green">329</FONT> * to be thrown.<a name="line.329"></a>
333 <FONT color="green">330</FONT> * @return built exception<a name="line.330"></a>
334 <FONT color="green">331</FONT> */<a name="line.331"></a>
335 <FONT color="green">332</FONT> public static IllegalArgumentException createIllegalArgumentException(final Throwable rootCause) {<a name="line.332"></a>
336 <FONT color="green">333</FONT> IllegalArgumentException iae = new IllegalArgumentException(rootCause.getLocalizedMessage());<a name="line.333"></a>
337 <FONT color="green">334</FONT> iae.initCause(rootCause);<a name="line.334"></a>
338 <FONT color="green">335</FONT> return iae;<a name="line.335"></a>
339 <FONT color="green">336</FONT> }<a name="line.336"></a>
340 <FONT color="green">337</FONT> <a name="line.337"></a>
341 <FONT color="green">338</FONT> /**<a name="line.338"></a>
342 <FONT color="green">339</FONT> * Constructs a new &lt;code&gt;IllegalStateException&lt;/code&gt; with specified formatted detail message.<a name="line.339"></a>
343 <FONT color="green">340</FONT> * Message formatting is delegated to {@link java.text.MessageFormat}.<a name="line.340"></a>
344 <FONT color="green">341</FONT> * @param pattern format specifier<a name="line.341"></a>
345 <FONT color="green">342</FONT> * @param arguments format arguments<a name="line.342"></a>
346 <FONT color="green">343</FONT> * @return built exception<a name="line.343"></a>
347 <FONT color="green">344</FONT> */<a name="line.344"></a>
348 <FONT color="green">345</FONT> public static IllegalStateException createIllegalStateException(final String pattern,<a name="line.345"></a>
349 <FONT color="green">346</FONT> final Object ... arguments) {<a name="line.346"></a>
350 <FONT color="green">347</FONT> return new IllegalStateException() {<a name="line.347"></a>
351 <FONT color="green">348</FONT> <a name="line.348"></a>
352 <FONT color="green">349</FONT> /** Serializable version identifier. */<a name="line.349"></a>
353 <FONT color="green">350</FONT> private static final long serialVersionUID = -95247648156277208L;<a name="line.350"></a>
354 <FONT color="green">351</FONT> <a name="line.351"></a>
355 <FONT color="green">352</FONT> /** {@inheritDoc} */<a name="line.352"></a>
356 <FONT color="green">353</FONT> @Override<a name="line.353"></a>
357 <FONT color="green">354</FONT> public String getMessage() {<a name="line.354"></a>
358 <FONT color="green">355</FONT> return buildMessage(Locale.US, pattern, arguments);<a name="line.355"></a>
359 <FONT color="green">356</FONT> }<a name="line.356"></a>
360 <FONT color="green">357</FONT> <a name="line.357"></a>
361 <FONT color="green">358</FONT> /** {@inheritDoc} */<a name="line.358"></a>
362 <FONT color="green">359</FONT> @Override<a name="line.359"></a>
363 <FONT color="green">360</FONT> public String getLocalizedMessage() {<a name="line.360"></a>
364 <FONT color="green">361</FONT> return buildMessage(Locale.getDefault(), pattern, arguments);<a name="line.361"></a>
365 <FONT color="green">362</FONT> }<a name="line.362"></a>
366 <FONT color="green">363</FONT> <a name="line.363"></a>
367 <FONT color="green">364</FONT> };<a name="line.364"></a>
368 <FONT color="green">365</FONT> }<a name="line.365"></a>
369 <FONT color="green">366</FONT> <a name="line.366"></a>
370 <FONT color="green">367</FONT> /**<a name="line.367"></a>
371 <FONT color="green">368</FONT> * Constructs a new &lt;code&gt;ConcurrentModificationException&lt;/code&gt; with specified formatted detail message.<a name="line.368"></a>
372 <FONT color="green">369</FONT> * Message formatting is delegated to {@link java.text.MessageFormat}.<a name="line.369"></a>
373 <FONT color="green">370</FONT> * @param pattern format specifier<a name="line.370"></a>
374 <FONT color="green">371</FONT> * @param arguments format arguments<a name="line.371"></a>
375 <FONT color="green">372</FONT> * @return built exception<a name="line.372"></a>
376 <FONT color="green">373</FONT> */<a name="line.373"></a>
377 <FONT color="green">374</FONT> public static ConcurrentModificationException createConcurrentModificationException(final String pattern,<a name="line.374"></a>
378 <FONT color="green">375</FONT> final Object ... arguments) {<a name="line.375"></a>
379 <FONT color="green">376</FONT> return new ConcurrentModificationException() {<a name="line.376"></a>
380 <FONT color="green">377</FONT> <a name="line.377"></a>
381 <FONT color="green">378</FONT> /** Serializable version identifier. */<a name="line.378"></a>
382 <FONT color="green">379</FONT> private static final long serialVersionUID = 6134247282754009421L;<a name="line.379"></a>
383 <FONT color="green">380</FONT> <a name="line.380"></a>
384 <FONT color="green">381</FONT> /** {@inheritDoc} */<a name="line.381"></a>
385 <FONT color="green">382</FONT> @Override<a name="line.382"></a>
386 <FONT color="green">383</FONT> public String getMessage() {<a name="line.383"></a>
387 <FONT color="green">384</FONT> return buildMessage(Locale.US, pattern, arguments);<a name="line.384"></a>
388 <FONT color="green">385</FONT> }<a name="line.385"></a>
389 <FONT color="green">386</FONT> <a name="line.386"></a>
390 <FONT color="green">387</FONT> /** {@inheritDoc} */<a name="line.387"></a>
391 <FONT color="green">388</FONT> @Override<a name="line.388"></a>
392 <FONT color="green">389</FONT> public String getLocalizedMessage() {<a name="line.389"></a>
393 <FONT color="green">390</FONT> return buildMessage(Locale.getDefault(), pattern, arguments);<a name="line.390"></a>
394 <FONT color="green">391</FONT> }<a name="line.391"></a>
395 <FONT color="green">392</FONT> <a name="line.392"></a>
396 <FONT color="green">393</FONT> };<a name="line.393"></a>
397 <FONT color="green">394</FONT> }<a name="line.394"></a>
398 <FONT color="green">395</FONT> <a name="line.395"></a>
399 <FONT color="green">396</FONT> /**<a name="line.396"></a>
400 <FONT color="green">397</FONT> * Constructs a new &lt;code&gt;NoSuchElementException&lt;/code&gt; with specified formatted detail message.<a name="line.397"></a>
401 <FONT color="green">398</FONT> * Message formatting is delegated to {@link java.text.MessageFormat}.<a name="line.398"></a>
402 <FONT color="green">399</FONT> * @param pattern format specifier<a name="line.399"></a>
403 <FONT color="green">400</FONT> * @param arguments format arguments<a name="line.400"></a>
404 <FONT color="green">401</FONT> * @return built exception<a name="line.401"></a>
405 <FONT color="green">402</FONT> */<a name="line.402"></a>
406 <FONT color="green">403</FONT> public static NoSuchElementException createNoSuchElementException(final String pattern,<a name="line.403"></a>
407 <FONT color="green">404</FONT> final Object ... arguments) {<a name="line.404"></a>
408 <FONT color="green">405</FONT> return new NoSuchElementException() {<a name="line.405"></a>
409 <FONT color="green">406</FONT> <a name="line.406"></a>
410 <FONT color="green">407</FONT> /** Serializable version identifier. */<a name="line.407"></a>
411 <FONT color="green">408</FONT> private static final long serialVersionUID = 7304273322489425799L;<a name="line.408"></a>
412 <FONT color="green">409</FONT> <a name="line.409"></a>
413 <FONT color="green">410</FONT> /** {@inheritDoc} */<a name="line.410"></a>
414 <FONT color="green">411</FONT> @Override<a name="line.411"></a>
415 <FONT color="green">412</FONT> public String getMessage() {<a name="line.412"></a>
416 <FONT color="green">413</FONT> return buildMessage(Locale.US, pattern, arguments);<a name="line.413"></a>
417 <FONT color="green">414</FONT> }<a name="line.414"></a>
418 <FONT color="green">415</FONT> <a name="line.415"></a>
419 <FONT color="green">416</FONT> /** {@inheritDoc} */<a name="line.416"></a>
420 <FONT color="green">417</FONT> @Override<a name="line.417"></a>
421 <FONT color="green">418</FONT> public String getLocalizedMessage() {<a name="line.418"></a>
422 <FONT color="green">419</FONT> return buildMessage(Locale.getDefault(), pattern, arguments);<a name="line.419"></a>
423 <FONT color="green">420</FONT> }<a name="line.420"></a>
424 <FONT color="green">421</FONT> <a name="line.421"></a>
425 <FONT color="green">422</FONT> };<a name="line.422"></a>
426 <FONT color="green">423</FONT> }<a name="line.423"></a>
427 <FONT color="green">424</FONT> <a name="line.424"></a>
428 <FONT color="green">425</FONT> /**<a name="line.425"></a>
429 <FONT color="green">426</FONT> * Constructs a new &lt;code&gt;NullPointerException&lt;/code&gt; with specified formatted detail message.<a name="line.426"></a>
430 <FONT color="green">427</FONT> * Message formatting is delegated to {@link java.text.MessageFormat}.<a name="line.427"></a>
431 <FONT color="green">428</FONT> * @param pattern format specifier<a name="line.428"></a>
432 <FONT color="green">429</FONT> * @param arguments format arguments<a name="line.429"></a>
433 <FONT color="green">430</FONT> * @return built exception<a name="line.430"></a>
434 <FONT color="green">431</FONT> */<a name="line.431"></a>
435 <FONT color="green">432</FONT> public static NullPointerException createNullPointerException(final String pattern,<a name="line.432"></a>
436 <FONT color="green">433</FONT> final Object ... arguments) {<a name="line.433"></a>
437 <FONT color="green">434</FONT> return new NullPointerException() {<a name="line.434"></a>
438 <FONT color="green">435</FONT> <a name="line.435"></a>
439 <FONT color="green">436</FONT> /** Serializable version identifier. */<a name="line.436"></a>
440 <FONT color="green">437</FONT> private static final long serialVersionUID = -3075660477939965216L;<a name="line.437"></a>
441 <FONT color="green">438</FONT> <a name="line.438"></a>
442 <FONT color="green">439</FONT> /** {@inheritDoc} */<a name="line.439"></a>
443 <FONT color="green">440</FONT> @Override<a name="line.440"></a>
444 <FONT color="green">441</FONT> public String getMessage() {<a name="line.441"></a>
445 <FONT color="green">442</FONT> return buildMessage(Locale.US, pattern, arguments);<a name="line.442"></a>
446 <FONT color="green">443</FONT> }<a name="line.443"></a>
447 <FONT color="green">444</FONT> <a name="line.444"></a>
448 <FONT color="green">445</FONT> /** {@inheritDoc} */<a name="line.445"></a>
449 <FONT color="green">446</FONT> @Override<a name="line.446"></a>
450 <FONT color="green">447</FONT> public String getLocalizedMessage() {<a name="line.447"></a>
451 <FONT color="green">448</FONT> return buildMessage(Locale.getDefault(), pattern, arguments);<a name="line.448"></a>
452 <FONT color="green">449</FONT> }<a name="line.449"></a>
453 <FONT color="green">450</FONT> <a name="line.450"></a>
454 <FONT color="green">451</FONT> };<a name="line.451"></a>
455 <FONT color="green">452</FONT> }<a name="line.452"></a>
456 <FONT color="green">453</FONT> <a name="line.453"></a>
457 <FONT color="green">454</FONT> /**<a name="line.454"></a>
458 <FONT color="green">455</FONT> * Constructs a new &lt;code&gt;ParseException&lt;/code&gt; with specified<a name="line.455"></a>
459 <FONT color="green">456</FONT> * formatted detail message.<a name="line.456"></a>
460 <FONT color="green">457</FONT> * Message formatting is delegated to {@link java.text.MessageFormat}.<a name="line.457"></a>
461 <FONT color="green">458</FONT> * @param offset offset at which error occurred<a name="line.458"></a>
462 <FONT color="green">459</FONT> * @param pattern format specifier<a name="line.459"></a>
463 <FONT color="green">460</FONT> * @param arguments format arguments<a name="line.460"></a>
464 <FONT color="green">461</FONT> * @return built exception<a name="line.461"></a>
465 <FONT color="green">462</FONT> */<a name="line.462"></a>
466 <FONT color="green">463</FONT> public static ParseException createParseException(final int offset,<a name="line.463"></a>
467 <FONT color="green">464</FONT> final String pattern,<a name="line.464"></a>
468 <FONT color="green">465</FONT> final Object ... arguments) {<a name="line.465"></a>
469 <FONT color="green">466</FONT> return new ParseException(null, offset) {<a name="line.466"></a>
470 <FONT color="green">467</FONT> <a name="line.467"></a>
471 <FONT color="green">468</FONT> /** Serializable version identifier. */<a name="line.468"></a>
472 <FONT color="green">469</FONT> private static final long serialVersionUID = -1103502177342465975L;<a name="line.469"></a>
473 <FONT color="green">470</FONT> <a name="line.470"></a>
474 <FONT color="green">471</FONT> /** {@inheritDoc} */<a name="line.471"></a>
475 <FONT color="green">472</FONT> @Override<a name="line.472"></a>
476 <FONT color="green">473</FONT> public String getMessage() {<a name="line.473"></a>
477 <FONT color="green">474</FONT> return buildMessage(Locale.US, pattern, arguments);<a name="line.474"></a>
478 <FONT color="green">475</FONT> }<a name="line.475"></a>
479 <FONT color="green">476</FONT> <a name="line.476"></a>
480 <FONT color="green">477</FONT> /** {@inheritDoc} */<a name="line.477"></a>
481 <FONT color="green">478</FONT> @Override<a name="line.478"></a>
482 <FONT color="green">479</FONT> public String getLocalizedMessage() {<a name="line.479"></a>
483 <FONT color="green">480</FONT> return buildMessage(Locale.getDefault(), pattern, arguments);<a name="line.480"></a>
484 <FONT color="green">481</FONT> }<a name="line.481"></a>
485 <FONT color="green">482</FONT> <a name="line.482"></a>
486 <FONT color="green">483</FONT> };<a name="line.483"></a>
487 <FONT color="green">484</FONT> }<a name="line.484"></a>
488 <FONT color="green">485</FONT> <a name="line.485"></a>
489 <FONT color="green">486</FONT> /** Create an {@link java.lang.RuntimeException} for an internal error.<a name="line.486"></a>
490 <FONT color="green">487</FONT> * @param cause underlying cause<a name="line.487"></a>
491 <FONT color="green">488</FONT> * @return an {@link java.lang.RuntimeException} for an internal error<a name="line.488"></a>
492 <FONT color="green">489</FONT> */<a name="line.489"></a>
493 <FONT color="green">490</FONT> public static RuntimeException createInternalError(final Throwable cause) {<a name="line.490"></a>
494 <FONT color="green">491</FONT> <a name="line.491"></a>
495 <FONT color="green">492</FONT> final String pattern = "internal error, please fill a bug report at {0}";<a name="line.492"></a>
496 <FONT color="green">493</FONT> final String argument = "https://issues.apache.org/jira/browse/MATH";<a name="line.493"></a>
497 <FONT color="green">494</FONT> <a name="line.494"></a>
498 <FONT color="green">495</FONT> return new RuntimeException() {<a name="line.495"></a>
499 <FONT color="green">496</FONT> <a name="line.496"></a>
500 <FONT color="green">497</FONT> /** Serializable version identifier. */<a name="line.497"></a>
501 <FONT color="green">498</FONT> private static final long serialVersionUID = -201865440834027016L;<a name="line.498"></a>
502 <FONT color="green">499</FONT> <a name="line.499"></a>
503 <FONT color="green">500</FONT> /** {@inheritDoc} */<a name="line.500"></a>
504 <FONT color="green">501</FONT> @Override<a name="line.501"></a>
505 <FONT color="green">502</FONT> public String getMessage() {<a name="line.502"></a>
506 <FONT color="green">503</FONT> return buildMessage(Locale.US, pattern, argument);<a name="line.503"></a>
507 <FONT color="green">504</FONT> }<a name="line.504"></a>
508 <FONT color="green">505</FONT> <a name="line.505"></a>
509 <FONT color="green">506</FONT> /** {@inheritDoc} */<a name="line.506"></a>
510 <FONT color="green">507</FONT> @Override<a name="line.507"></a>
511 <FONT color="green">508</FONT> public String getLocalizedMessage() {<a name="line.508"></a>
512 <FONT color="green">509</FONT> return buildMessage(Locale.getDefault(), pattern, argument);<a name="line.509"></a>
513 <FONT color="green">510</FONT> }<a name="line.510"></a>
514 <FONT color="green">511</FONT> <a name="line.511"></a>
515 <FONT color="green">512</FONT> };<a name="line.512"></a>
516 <FONT color="green">513</FONT> <a name="line.513"></a>
517 <FONT color="green">514</FONT> }<a name="line.514"></a>
518 <FONT color="green">515</FONT> <a name="line.515"></a>
519 <FONT color="green">516</FONT> }<a name="line.516"></a>
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580 </PRE>
581 </BODY>
582 </HTML>