Certes le compilateur pourrait prendre automatiquement la première classe mère commune aux exceptions, mais ça voudrait dire que la classe est définie implicitement. En plus du fait que je trouve ça moche, c'est contraire au pricipe Java qui a un typage explicite.
Nulle par en Java une variable n'existe sans que son type soit explicitement spécifié. Pas même dans le foreach (
for(String str : listeDeString)) où ce serait tout à fait possible. Je ne pense pas qu'il faille changer ça surtout, pour une modification assez mineure.
L'héritage n'est pas toujours une bonne solution : cf
ce post qui l'explique bien