несовместимые типы и свежие переменные типа

Я получаю следующее сообщение компиляции:

[javac]   ... error: incompatible types
[javac]         exceptionClassHolder = new Holder<>( (new Exception()).getClass() );
[javac]                                ^
[javac]   required: Holder<Class<? extends Exception>>
[javac]   found:    Holder<Class<CAP#1>>
[javac]   where CAP#1 is a fresh type-variable:
[javac]     CAP#1 extends Exception from capture of ? extends Exception
[javac] 1 error

Мне кажется, что согласно сообщению все должно быть правильно.CAP#1 действительно расширяет исключение. Итак, как следует понимать вышеприведенное сообщение? SSCCE ниже (изначально не было опубликовано, так как я надеялся понять само сообщение об ошибке в общем случае):

class Holder<T> {
    public T t;
    public Holder(T t) {
       this.t = t;
    }
}

public class FooMain {
    public static void main(String args[]) throws Exception {
        Holder<Class<? extends Exception>> exceptionClassHolder;
        exceptionClassHolder = new Holder<>( (new Exception()).getClass() );
    }
}

Ответы на вопрос(2)

Ваш ответ на вопрос