Учебники

Java Generics – без исключений

Универсальный класс не может расширять класс Throwable прямо или косвенно.

//The generic class Box<T> may not subclass java.lang.Throwable
class Box<T> extends Exception {}

//The generic class Box<T> may not subclass java.lang.Throwable
class Box1<T> extends Throwable {}

Метод не может перехватить экземпляр параметра типа.

public static <T extends Exception, J> 
   void execute(List<J> jobs) {
      try {
         for (J job : jobs) {}
  
         // compile-time error
         //Cannot use the type parameter T in a catch block
      } catch (T e) { 
         // ...
   }
} 

Параметры типа разрешены в предложении throws.