public static <T extends Throwable> T cutCause(final T cause) {
        Throwable rootCause = cause;
        while (rootCause.getCause() != null) {
            rootCause = rootCause.getCause();
        }

        if (rootCause != cause) {
            cause.setStackTrace(rootCause.getStackTrace());
            causeUpdater.set(cause, rootCause);
        }
        return cause;
    }
private static <E extends java/lang/Throwable> void throwException0(java.lang.Throwable) throws E;
     flags: ACC_PRIVATE, ACC_STATIC
     Code:
     stack=1, locals=1, args_size=1
         0: aload_0
         1: athrow
     ...
 Exceptions:
     throws java.lang.Throwable
jraft-core/src/main/java/com/alipay/sofa/jraft/util/internal/ThrowUtil.java