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