Java Stacktrace stackTraceContainsCause(Throwable throwable, Class searchedCause)

Here you can find the source of stackTraceContainsCause(Throwable throwable, Class searchedCause)

Description

Check if the stack trace of provided exception contains a given cause.

License

Open Source License

Parameter

Parameter Description
throwable exception that may contain the cause
searchedCause class of the cause to look for. Any subclass will match.

Return

true if and only if the given cause is found as a cause of any level in the provided exception.

Declaration

public static boolean stackTraceContainsCause(Throwable throwable, Class<? extends Throwable> searchedCause) 

Method Source Code

//package com.java2s;
/*//  w w w  .  j  av  a  2  s . c  om
 * CDDL HEADER START
 *
 * The contents of this file are subject to the terms of the
 * Common Development and Distribution License, Version 1.0 only
 * (the "License").  You may not use this file except in compliance
 * with the License.
 *
 * You can obtain a copy of the license at legal-notices/CDDLv1_0.txt
 * or http://forgerock.org/license/CDDLv1.0.html.
 * See the License for the specific language governing permissions
 * and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL HEADER in each
 * file and include the License file at legal-notices/CDDLv1_0.txt.
 * If applicable, add the following below this CDDL HEADER, with the
 * fields enclosed by brackets "[]" replaced with your own identifying
 * information:
 *      Portions Copyright [yyyy] [name of copyright owner]
 *
 * CDDL HEADER END
 *
 *
 *      Copyright 2006-2010 Sun Microsystems, Inc.
 *      Portions Copyright 2011-2015 ForgeRock AS
 */

public class Main {
    /**
     * Check if the stack trace of provided exception contains a given cause.
     *
     * @param throwable
     *          exception that may contain the cause
     * @param searchedCause
     *          class of the cause to look for. Any subclass will match.
     * @return true if and only if the given cause is found as a cause of any
     *         level in the provided exception.
     */
    public static boolean stackTraceContainsCause(Throwable throwable, Class<? extends Throwable> searchedCause) {
        Throwable t = throwable;
        while ((t = t.getCause()) != null) {
            if (searchedCause.isAssignableFrom(t.getClass())) {
                return true;
            }

        }
        return false;
    }
}

Related

  1. stackTrace(int depth)
  2. stackTrace(StackTraceElement[] stackTrace)
  3. stackTrace2String(Throwable e)
  4. stackTraceApproved(StackTraceElement elt, String[] approved)
  5. stackTraceAsString(Throwable t)
  6. stackTraceElementToString( StackTraceElement element)
  7. stackTraceElementWithLinenumber( StackTraceElement stackTraceElement)
  8. stackTraceElementWithLinenumberAsString(StackTraceElement stackTraceElement)
  9. stackTraceEquals(StackTraceElement[] ta1, StackTraceElement[] ta2)