src/main/java/org/fest/assertions/ThrowableAssert.java
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));
  }
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));
  }
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 ) ) ; }
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}.
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 .