core/src/com/google/inject/TypeLiteral.java
public List<TypeLiteral<?>> getExceptionTypes(Member methodOrConstructor) {
    Type[] genericExceptionTypes;

    if (methodOrConstructor instanceof Method) {
      Method method = (Method) methodOrConstructor;
      checkArgument(
          method.getDeclaringClass().isAssignableFrom(rawType),
          "%s is not defined by a supertype of %s",
          method,
          type);
      genericExceptionTypes = method.getGenericExceptionTypes();

    } else if (methodOrConstructor instanceof Constructor) {
      Constructor<?> constructor = (Constructor<?>) methodOrConstructor;
      checkArgument(
          constructor.getDeclaringClass().isAssignableFrom(rawType),
          "%s does not construct a supertype of %s",
          constructor,
          type);
      genericExceptionTypes = constructor.getGenericExceptionTypes();

    } else {
      throw new IllegalArgumentException("Not a method or a constructor: " + methodOrConstructor);
    }

    return resolveAll(genericExceptionTypes);
  }
public List<TypeLiteral<?>> getExceptionTypes(Member methodOrConstructor) {
    Type[] genericExceptionTypes;

    if (methodOrConstructor instanceof Method) {
      Method method = (Method) methodOrConstructor;
      checkArgument(
          method.getDeclaringClass().isAssignableFrom(rawType),
          "%s is not defined by a supertype of %s",
          method,
          type);
      genericExceptionTypes = method.getGenericExceptionTypes();

    } else if (methodOrConstructor instanceof Constructor) {
      Constructor<?> constructor = (Constructor<?>) methodOrConstructor;
      checkArgument(
          constructor.getDeclaringClass().isAssignableFrom(rawType),
          "%s does not construct a supertype of %s",
          constructor,
          type);
      genericExceptionTypes = constructor.getGenericExceptionTypes();

    } else {
      throw new IllegalArgumentException("Not a method or a constructor: " + methodOrConstructor);
    }

    return resolveAll(genericExceptionTypes);
  }
public List < TypeLiteral < ? > > getExceptionTypes ( Member methodOrConstructor ) { Type [ ] genericExceptionTypes ; if ( methodOrConstructor instanceof Method ) { Method method = ( Method ) methodOrConstructor ; checkArgument ( method . getDeclaringClass ( ) . isAssignableFrom ( rawType ) , "%s is not defined by a supertype of %s" , method , type ) ; genericExceptionTypes = method . getGenericExceptionTypes ( ) ; } else if ( methodOrConstructor instanceof Constructor ) { Constructor < ? > constructor = ( Constructor < ? > ) methodOrConstructor ; checkArgument ( constructor . getDeclaringClass ( ) . isAssignableFrom ( rawType ) , "%s does not construct a supertype of %s" , constructor , type ) ; genericExceptionTypes = constructor . getGenericExceptionTypes ( ) ; } else { throw new IllegalArgumentException ( "Not a method or a constructor: " + methodOrConstructor ) ; } return resolveAll ( genericExceptionTypes ) ; }
Returns the resolved generic exception types thrown by {@code constructor}.

@param methodOrConstructor a method or constructor defined by this or any supertype.
@since 2.0
Returns the resolved generic exception types thrown by { @code constructor } .