1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.apache.ibatis.reflection;
17
18 import java.lang.reflect.InvocationTargetException;
19 import java.lang.reflect.UndeclaredThrowableException;
20
21
22
23
24 public class ExceptionUtil {
25
26 private ExceptionUtil() {
27
28 }
29
30 public static Throwable unwrapThrowable(Throwable wrapped) {
31 Throwable unwrapped = wrapped;
32 while (true) {
33 if (unwrapped instanceof InvocationTargetException) {
34 unwrapped = ((InvocationTargetException) unwrapped).getTargetException();
35 } else if (unwrapped instanceof UndeclaredThrowableException) {
36 unwrapped = ((UndeclaredThrowableException) unwrapped).getUndeclaredThrowable();
37 } else {
38 return unwrapped;
39 }
40 }
41 }
42
43 }