Příklad

public static class Loader {
public void load() throws UnsupportedOperationException, ClassNotFoundException{
//něco provést...
}
}


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


Řešení
Ve výše uvedené metodě main zachycuje poslední klauzule generickou výjimku java.lang.Exception. Místo toho
vytvořte vyhrazenou klauzuli catch pro každou deklarovanou výjimku, která je vyhozena z klauzule try.
Pozn.: Mohou nastat situace, kdy se preferuje generické zachycení, aby se zajistila elegantní ukončení. Obecně
však lze říci, že větší srozumitelnosti a více voleb řízení lze dosáhnout s více klauzulemi catch, které jsou specifické.


public static class Loader {
public void load() throws UnsupportedOperationException, ClassNotFoundException {
//něco provést...
}
}


public static void main(String[] args) {
Loader loader = new Loader();
try {
loader.load();
} catch ( UnsupportedOperationException e1 ) {
System.out.println( "load is not implemented" ); //$NON-NLS-1$
} catch ( ClassNotFoundException e2 ) {
System.out.println( "No class " + e2.getMessage() ); //$NON-NLS-1$
}
}