toString überschreiben + Exception werfen

Status
Nicht offen für weitere Antworten.

Dag B.

Aktives Mitglied
Hallo,

wie kann ich eine Funktion so überschreiben, dass ich eine Exception werfen kann?
Ich möchte toString überschreiben, aber bei falscher Stringlänge soll das Prog eben abbrechen und eine Exception werfen.

triplet ist ein char[3].

Wenn ich die Kommentarzeichen vor dem Exceptionkrams wegnehme, krieg ich logischerweise nen Fehler, da toString ja normal keine Exceptions wirft...
Aber ich find auch nirgends was, wie das sonst funktioniert, sobald ich sage "throws Exception" mag ers nich compilieren.
Und einfach catchen geht eigentlich auch nicht, denn das Programm soll ja abbrechen...

Java:
@Override
        public String toString()
        //throws Exception
       {
           if(triplet.length == 3)
           {
               String triplet_string = String.valueOf(triplet[0]) + String.valueOf(triplet[1])
                + String.valueOf(triplet[2]);
                if(triplet_string.length() == 3)
                    return triplet_string;
                else
                    return "III";// throw new Exception("Triplet(string) length too long/short"); //TODO: ERROR: Triplet(string) length
           }    
           else
               return "III";// throw new Exception("Triplet(string) length too long/short"); //TODO: ERROR: Triplet(string) length
       }
 

Marco13

Top Contributor
Mit [c]throw new RuntimeException(...)[/c] geht das theoretisch, aber in der toString eine Exception zu werfen ist IMHO gröbster Unfug. Es sollte einfach immer sichergestellt sein, dass triplet.length == 3 gilt, und wenn das nicht geht, sollte toString vielleicht sowas wie "[INVALID TRIPLET]" zurückgeben (was auch noch unschön wäre, aber besser, als eine Exception zu werfen...)
 

musiKk

Top Contributor
Was auch immer Du damit vor hast: Mach es anders. Warum sollte der Aufruf von toString() eine Exception werfen? Irgendwo wird die Variable triplet ja gesetzt (Konstruktor oder Setter). Dort sollte es z. B. eine IllegalArgumentException geben, wenn ein falsches übergeben wurde.
toString() ist nur für eine informative Ausgabe für den Entwickler da und selten auch für Ausgaben für den Nutzer (das sollte aber entsprechend dokumentiert sein; eine eigene Methode ist imho immer besser).
 

Dag B.

Aktives Mitglied
Hm, ok, danke.

Die toString benötige ich für equals und hashCode, sonst verwende ich sie nicht. Die beiden Methoden benötige ich wiederrum, weil ich eine HashMap verwende.

Sind auch die einzigen Stellen wo es überhaupt benötigt wird.
Eigentlich kann triplet auch nie != 3 werden, da es eine private Variable ist "private char[] triplet = new char[3];" auf welche zugegriffen wird. Oben, über den Methoden, ich vergesse immer wie das heißt. Ich dachte global, aber mein Kumpel meinte wens private ist, isses nich global. :bahnhof:
Kann man also vermutlich eh einsparen. Kenne mich da nicht so aus, mir wurde nur gesagt, ich solle alle möglichen Fehler abfangen/verarbeiten und das fiel mir damals eben mit ein. ^^

Java:
private char[] triplet = new char[3];

(...Constructor und co)

    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        Triplet other = (Triplet) obj;
        if (!toString().equals(other.toString ()))
            return false;
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 5;
        hash = toString().hashCode();
        return hash;
    }
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Wann toString() überschreiben? Java Basics - Anfänger-Themen 21
W LocalDate toString und nach Split falsch "erkannt"? Java Basics - Anfänger-Themen 8
W ArrayList und toString Java Basics - Anfänger-Themen 17
W toString bei composition Java Basics - Anfänger-Themen 4
M Unterschied Integer.toString(x) und x.toString() Java Basics - Anfänger-Themen 22
E Einrücken inner der toString()-Methode Java Basics - Anfänger-Themen 34
W Objekte über Scanner Input; ToString Probleme... Java Basics - Anfänger-Themen 4
M Polymorphie toString Java Basics - Anfänger-Themen 13
Y Wie kann ich ein Element in einer toString finden. Java Basics - Anfänger-Themen 2
A Implementierung von String toString methode() Java Basics - Anfänger-Themen 4
P falscher booleanwert bei toString Java Basics - Anfänger-Themen 4
P Methode die eigentlich einen Scanner benötigt mit toString() Java Basics - Anfänger-Themen 5
M Wie analysiert JSON eine toString-Ausgabe ? Java Basics - Anfänger-Themen 1
J Methoden toString()-Date Formatter Java Basics - Anfänger-Themen 8
V Neue Ausgabe von toString nach Methodenaufruf Java Basics - Anfänger-Themen 9
M Die Inhalte eines Arrays mit der Methode Arrays.toString ausgeben Java Basics - Anfänger-Themen 4
H toString-Methode Java Basics - Anfänger-Themen 24
E Vererbung mit toString() Java Basics - Anfänger-Themen 6
O Referenz - toString Java Basics - Anfänger-Themen 9
B toString mit optionaler Ausgabe überrschreiben Java Basics - Anfänger-Themen 5
J toString-Methode in Verbindung mit varArgs-Konstruktor Java Basics - Anfänger-Themen 18
C Methoden toString Java Basics - Anfänger-Themen 4
B toString() Dilemma Java Basics - Anfänger-Themen 7
TomatenBrot447 Mit toString eine Ausgabe liefern wie in einer schon implementierten Methode ? Java Basics - Anfänger-Themen 13
TomatenBrot447 Mit toString eine Ausgabe liefern wie in einer schon implementierten Methode ? Java Basics - Anfänger-Themen 1
V ToString-Methode mit JUnit testen(BlueJ) Java Basics - Anfänger-Themen 10
D Arrays.toString spuckt null aus? Java Basics - Anfänger-Themen 3
S Methoden equals(object o) / toString Java Basics - Anfänger-Themen 15
K array in toString des objektes ausgeben Java Basics - Anfänger-Themen 1
Psypsy hashCode, equals und toString Java Basics - Anfänger-Themen 3
J toString() Methode und ArrayList Java Basics - Anfänger-Themen 1
K toString() Java Basics - Anfänger-Themen 1
H Erste Schritte Arrayes.toString methode funktioniert nicht Java Basics - Anfänger-Themen 2
A Problem mit toString Methode Java Basics - Anfänger-Themen 8
T String toString methode nicht vererbt ... Java Basics - Anfänger-Themen 4
I Vererbung toString() Frage Java Basics - Anfänger-Themen 5
M Unbekannte Nummer bei Aufruf der toString Methode Java Basics - Anfänger-Themen 3
E Richtige Ausgabe nur mit toString() - Warum? Java Basics - Anfänger-Themen 4
S Datentypen List.toString wirft NullPointerException Java Basics - Anfänger-Themen 5
A ToString()-Methode richtig benutzen Java Basics - Anfänger-Themen 3
J ArrayList toString() Übergabe Fehler Java Basics - Anfänger-Themen 2
F Eigene LinkedList - toString Java Basics - Anfänger-Themen 10
A JList / toString modify Java Basics - Anfänger-Themen 2
J Vererbung Überschriebene toString-Methode aufrufen Java Basics - Anfänger-Themen 10
M toString gibt "null" statt "0.0" aus Java Basics - Anfänger-Themen 5
M toString Java Basics - Anfänger-Themen 7
H Integer.toString(int i) vs. String.valueOf(int i) Java Basics - Anfänger-Themen 12
C Methoden String von einem toString() herauslesen Java Basics - Anfänger-Themen 2
P toString-Methode gibt immer null vor Variable aus Java Basics - Anfänger-Themen 9
N .toString() und (string) Java Basics - Anfänger-Themen 2
B Methoden toString Methode mit Schlüsselwort new Java Basics - Anfänger-Themen 3
S schwierigkeit mit in der verwaltungsklasse benutzen von toString() Java Basics - Anfänger-Themen 7
J Zweidimensionales Array durch ToString ausgeben lassen Java Basics - Anfänger-Themen 21
N Matrix an toString Java Basics - Anfänger-Themen 7
A Werteausgabe des Construktors mit toString Java Basics - Anfänger-Themen 2
D super.tostring Java Basics - Anfänger-Themen 8
A Stringarray toString Java Basics - Anfänger-Themen 5
L toString()-Methode in verschieden Klassen Java Basics - Anfänger-Themen 3
R Frage zu statischer Methode toString() Java Basics - Anfänger-Themen 3
S Escape Sequenz in der toString() ? Java Basics - Anfänger-Themen 4
S Stack als verkettete liste/ toString methode Java Basics - Anfänger-Themen 3
A Arrays.asList(s).toString() ohne [] und , Java Basics - Anfänger-Themen 3
P toString Java Basics - Anfänger-Themen 4
M .toString(); // Ausgabe: Attribut von Vaterklasse Java Basics - Anfänger-Themen 12
K toString Java Basics - Anfänger-Themen 10
F toString Methode ausgeben Java Basics - Anfänger-Themen 3
A Object -> String mit valueOf, toString oder cast ? Java Basics - Anfänger-Themen 6
R getClass und getName sowie toString Java Basics - Anfänger-Themen 10
D Arrays.toString problem Java Basics - Anfänger-Themen 2
D array.toString() wieso funktioniert es nicht Java Basics - Anfänger-Themen 4
S toString-Methode für Map Java Basics - Anfänger-Themen 15
L OOP hilfe bei tostring methode Java Basics - Anfänger-Themen 6
H toString / println Java Basics - Anfänger-Themen 2
H toString() erben? Java Basics - Anfänger-Themen 3
A Arrays.toString() ohne [ und ] Java Basics - Anfänger-Themen 2
K Arrays.toString(); funktioniert nicht Java Basics - Anfänger-Themen 4
A byte.toString() -> Datenmüll Java Basics - Anfänger-Themen 52
K Problem mit .toString und FileReader Java Basics - Anfänger-Themen 2
G toString Problem Java Basics - Anfänger-Themen 12
G Gregorian Calendar aus toString() Ausgabe wiederherstellen Java Basics - Anfänger-Themen 4
T Warum Fehlermeldung bei diesem ToString Programm? Java Basics - Anfänger-Themen 2
B toString Java Basics - Anfänger-Themen 5
S Was macht [Integer.toString(number, tarRadix)] Java Basics - Anfänger-Themen 3
G Probleme bei toString Überschreibung Java Basics - Anfänger-Themen 6
M int toString Datentypen Umwandeln, AnfängerProblem Java Basics - Anfänger-Themen 3
T keine Ausgabe von toString obwohl keine Fehlermeldung Java Basics - Anfänger-Themen 5
D ToString Java Basics - Anfänger-Themen 3
C Bedeutung von toString im Bezug auf Text Java Basics - Anfänger-Themen 4
N char[] aus JPasswordField toString() Java Basics - Anfänger-Themen 6
T Boolean toString ? Java Basics - Anfänger-Themen 3
D Frage zum Aufruf einer toString-Methode Java Basics - Anfänger-Themen 2
H toString(); varargs; bitSet Java Basics - Anfänger-Themen 8
M getClass() und getClass().toString() Java Basics - Anfänger-Themen 4
V toString()-Methode Java Basics - Anfänger-Themen 9
S PrintWriter-Probleme mit toString Methode->Person@17182c1 Java Basics - Anfänger-Themen 10
P Vektor toString? Java Basics - Anfänger-Themen 2
S valueOf() vs. toString() Verwendung??? Java Basics - Anfänger-Themen 13
G Frage zur toString ? Java Basics - Anfänger-Themen 4
L .toString wieder rückgängig machen Java Basics - Anfänger-Themen 7
H Was ist toString ??? Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben