CharConversionException auswerfen

ManuJo5500

Mitglied
Liebe Leute, ich bin zurzeit bei der folgenden Aufgabe dran:
Implementieren Sie eine öffentlich Klasse StringNumber, welche die abstrakte Klasse [java.lang.Number] erweitert, so dass Sie von der Klasse Objekte erstellen können. Die Klasse soll einen Konstruktor haben, welcher einen String-Parameter übergeben bekommt. Übergeben werden sollen Ziffern, also: "null", "eins", "zwei", "drei", "vier", "fünf", "sechs", "sieben", "acht" oder "neun". Wird etwas anderes übergeben, soll eine CharConversionException aus dem Paket java.io geworfen werden. Die Nachricht der Exception soll mit "not a StringNumber" beginnen.

Das Problem ist, wenn ich ein Objekt von StringNumber zu erstellen versuche z.Bsp StringNumber n = new StringNumber("vier"); dann kommt die folgende Fehlermeldung:
'unreported exception java.io.CharConversionException; must be caught or declared to be thrown'
Weiss jemand, was ich falsch mache bezogen auf die Exception. Die Deklaration von den Methoden der java.lang.Number werden hierbei nicht berücksichtigt.

Code:
import java.io.CharConversionException;
public class StringNumber extends java.lang.Number {
  String s;
  public StringNumber (String s) throws CharConversionException{
    try {
      if (!(s.equals("null") || 
          s.equals("eins") || 
          s.equals("zwei") ||
          s.equals("drei") || 
          s.equals("vier") ||
          s.equals("fünf") ||
          s.equals("sechs") || 
          s.equals("sieben") ||
          s.equals("acht") ||
          s.equals("neun"))) {
        throw new CharConversionException("not a StringNumber");
      } else {
        this.s = s;
      }
    } catch (CharConversionException e) {      
    }    
  }
}
 

mihe7

Top Contributor
Weiss jemand, was ich falsch mache bezogen auf die Exception.
Es handelt sich um eine checked Exception, die beim Aufruf (hier: bei Objekterzeugung, in Folge dessen der Konstruktor aufgerufen wird) behandelt werden muss:
Java:
try {
    Number n = new StringNumber("vier");
} catch (CharConversionException ex) {
    ex.printStackTrace();
}
 

Ähnliche Java Themen

Neue Themen


Oben