Java Throwable to Root Cause getRootStackTrace(Throwable t)

Here you can find the source of getRootStackTrace(Throwable t)

Description

Gets the root stack trace as a string.

License

Apache License

Parameter

Parameter Description
t a parameter

Declaration

public static String getRootStackTrace(Throwable t) 

Method Source Code


//package com.java2s;
/*/*www. j av a2 s. c om*/
 * Copyright 2012 JBoss Inc
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import java.io.PrintWriter;
import java.io.StringWriter;

public class Main {
    /**
     * Gets the root stack trace as a string.
     * @param t
     */
    public static String getRootStackTrace(Throwable t) {
        StringWriter sw = new StringWriter();
        PrintWriter writer = new PrintWriter(sw);
        getRootCause(t).printStackTrace(writer);
        return sw.getBuffer().toString();
    }

    /**
     * Gets the root exception from the given {@link Throwable}.
     * @param t
     */
    public static Throwable getRootCause(Throwable t) {
        Throwable root = t;
        while (root.getCause() != null && root.getCause() != root)
            root = root.getCause();
        return root;
    }
}

Related

  1. getRootCauseStackTrace(@Nonnull final Throwable throwable)
  2. getRootCauseStackTrace(Throwable throwable)