001package co.codewizards.cloudstore.core.util;
002
003import static co.codewizards.cloudstore.core.util.Util.*;
004
005public final class ExceptionUtil {
006
007        private ExceptionUtil() { }
008
009        public static <T extends Throwable> T getCause(Throwable throwable, Class<T> searchClass) {
010                assertNotNull("throwable", throwable);
011                assertNotNull("searchClass", searchClass);
012
013                Throwable cause = throwable;
014                while (cause != null) {
015                        if (searchClass.isInstance(cause)) {
016                                return searchClass.cast(cause);
017                        }
018                        cause = cause.getCause();
019                }
020                return null;
021        }
022}