Beispiel

public static void main( String[] args ) {
int value = 0;
try {
value = Integer.parseInt( args[ 0 ] );
} catch ( NumberFormatException e0 ) {
try {
value = Integer.parseInt( args[ 1 ] );
} catch ( NumberFormatException e1 ) {
try {
value = Integer.parseInt( args[ 2 ] );
} catch ( NumberFormatException e2 ) {

}
}
}
}

Lösung
Verwenden Sie das 'Strategy'-Designmuster.
  1. Erstellen Sie für die Ausführung der Task eine Schnittstelle.
  2. Lassen Sie die Methode, die die Task ausführt, eine Ausnahmebedingung auslösen.
  3. Stellen Sie die Klasse mit dem verschachtelten try/catch-Block in einen Strategiecontainer.
  4. Ändern Sie den verschachtelten try/catch-Block in eine for-Schleife.
  5. Wenden Sie die Strategien an, solange eine Ausnahmebedingung in der Schleife vorhanden ist.

public static void main( String[] args ) {
int value = 0;
for ( int i = 0; i < args.length; i++ ) {
try {
value = Integer.parseInt( args[ i ] );
break ;
} catch ( NumberFormatException e ) {
// Ignore exception
}
}

}