private boolean isAssignableFrom(Throwable concreteThrowable,Set<Class<? extends Throwable>> throwableClasses){
  for (  Class<? extends Throwable> t : throwableClasses) {
    if (t.isAssignableFrom(concreteThrowable.getClass())) {
      return true;
    }
  }
  return false;
}

private boolean isAssignableFrom ( Throwable concreteThrowable , Set < Class < ? extends Throwable > > throwableClasses ) { for ( Class < ? extends Throwable > t : throwableClasses ) { if ( t . isAssignableFrom ( concreteThrowable . getClass ( ) ) ) { return true ; } } return false ; }
tests if concretethrowable . getclass is assignable to any of the classes in throwableclasses
