Example

public static class Loader {
public void load() throws UnsupportedOperationException, ClassNotFoundException{
//executar algo...
}
}


public static void main( String[] args) {
Loader loader = new Loader();
try {
loader.load();
} catch ( Exception e ) {
e.printStackTrace();
}
}


Solução
No método main acima, a última cláusula captura a java.lang.Exception genérica. Em vez disso,
crie uma cláusula catch dedicada para cada exceção declarada que seja emitida a partir da cláusula try.
Nota: Poderá haver situações em que uma captura genérica seja preferencial para garantir saídas naturais. Em geral,
entretanto, maior claridade e opções para maior controle são possíveis com mais cláusulas catch específicas.


public static class Loader {
public void load() throws UnsupportedOperationException, ClassNotFoundException {
//executar algo...
}
}


public static void main( String[] args) {
Loader loader = new Loader();
try {
loader.load();
} catch ( UnsupportedOperationException e1 ) {
System.out.println( "carregamento não está implementado" ); //$NON-NLS-1$
} catch ( ClassNotFoundException e2 ) {
System.out.println( "Nenhuma classe " + e2.getMessage() ); //$NON-NLS-1$
}
}