zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

Die Integer.parseInt() Methode wird eine Fehlermeldung ausgeben.

Crash!

Genauer gesagt, die Methode löst eine NumberFormatException aus, die das Java System behandelt und das dann ein Fehlerprotokoll ausgibt:

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string "rats"
        at java.lang.NumberFormatException.forInputString(Unknown Source)
        at java.lang.Integer.parseInt(Unknown Source)
        at java.lang.Integer.parseInt(Unknown Source)
        at FahrenheitPanel$TempListener.actionPerformed(FahrenheitPanel.java:52)
         . . . . and so on . . . .

Der richtige Weg, um mit diesem Problem umzugehen, ist die Verwendung einer Fehlerbehandlung. Hier ist die modifizierte actionPerformed() Methode, um mit dem fehlerhaften Input des Anwenders umzugehen.

  public void actionPerformed( ActionEvent evt)
  {
    String userIn = inFahr.getText() ;

    try
    {
      fahrTemp = Integer.parseInt( userIn ) ;
      celsTemp = convert( fahrTemp ) ;
      outCel.setText( celsTemp+"" );
    }

    catch ( Exception ex )
    {
      outCel.setText( "Re-enter F" );
    }

    repaint();
  }

Wenn irgend etwas in den drei Anweisungen nach try schief geht:

    try
    {
      fahrTemp = Integer.parseInt( userIn ) ;
      celsTemp = convert( fahrTemp ) ;
      outCel.setText( celsTemp+"" );
    }

wird eine Ausnahme (Exception) ausgelöst und dann der catch-Block ausgeführt:

    catch ( Exception ex )
    {
      outCel.setText( "Re-enter F" );
    }

Dieser Block schreibt eine Fehlermeldung in das Output Textfeld.

FRAGE 8:

Betrachtet das oben stehende Fehlerprotokoll. Welchen String hat der Anwender eingegeben, der nicht in einen Integer konvertiert werden konnte?

zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite