code: public static <T extends Throwable> Matcher<T> isThrowable(Class<?> type, Matcher<? super T> matcher) {
          return IsThrowable.<T>isThrowable(type, matcher);
      }
docs: Throwable matcher with a type argument and additional matcher, e.g. the cause
  @see #withCause(Matcher)
  @see #withMessage(Matcher)
  @param type the throwable type to match
  @param matcher the additional matcher
  @param <T> type of the matched throwable
  @return the matcher