code: public @NotNull ThrowableAssert isExactlyInstanceOf(@NotNull Class<?> type) {
      isNotNull();
      checkNotNull(type);
      Class<?> current = actual.getClass();
      if (type.equals(current)) {
        return this;
      }
      failIfCustomMessageIsSet();
      throw failure(format("expected exactly the same type:<%s> but was:<%s>", type, current));
    }
docs: Verifies that the actual {@code Throwable} is an instance of the given type. In order for the assertion to pass,
  the type of the actual {@code Throwable} has to be exactly the same as the given type.
  
  @param type the type to check the actual {@code Throwable} against.
  @return this assertion object.
  @throws AssertionError       if the actual {@code Throwable} is {@code null}.
  @throws AssertionError       if the actual {@code Throwable} is not an instance of the given type.
  @throws NullPointerException if the given type is {@code null}.