Eine gute Antwort wäre:

Nein. Sie schreiben nur die catch{}-Blöcke für die Ausnahmen, die Sie behandeln möchten. Die anderen Ausnahmen werden an den Aufrufer zurückgegeben.

Anwenderfreundlicher Code

Ausnahmebehandlung ist wichtig für anwenderfreundliche Programme. Hier ist noch einmal das Quadrat-Programm, diesmal so geschrieben, dass der Anwender erneut zur Eingabe aufgefordert wird, wenn der Input falsch ist:

import java.lang.* ;
import java.io.* ;

public class QuadratUser
{

  public static void main ( String[] a ) throws IOException
  {
    BufferedReader stdin =
        new BufferedReader ( new InputStreamReader( System.in ) );

    String  inData = null;
    int     zahl = 0;
    boolean goodData = false;

    while ( !goodData )
    {
      System.out.println("Eine Zahl eingeben:");
      inData = stdin.readLine();

      try
      {
        zahl      = Integer.parseInt( inData );
        goodData = true;
      }

      catch (NumberFormatException ex )
      {
        System.out.println("Sie haben falsche Daten eingegeben." );
        System.out.println("Versuchen Sie es noch einmal.\n" );
      }

    }

    System.out.println("Das Quadrat von " + inData + " ist " + zahl*zahl );

  }
}

Das ist ein gewöhnlicher Stil, um Input vom Anwender einzulesen. Es wäre ungewöhnlich nützlich dieses Programm zu kopieren, zu speichern und auszuführen.

FRAGE 8:

Könnten die folgenden Anweisungen in den try{}-Block verschoben werden?

System.out.println("Eine Zahl eingeben:");
inData = stdin.readLine();
Inhaltsverzeichnis