ubuntuusers.de

[Java] Exception abfangen in ActionPerformed

Status: Gelöst | Ubuntu-Version: Kein Ubuntu
Antworten |

Giesi35

Anmeldungsdatum:
30. Januar 2011

Beiträge: 164

Hallo,

ich möchte bzw. muss ein String aus einem JTextField auslesen und diesen dann in ein Double parsen. Allerdings wirft diese Funktion natürlich eine Exception, wenn nicht geparst werden kann (NumberFormatException). Allerdings kann ich in actionPerformed keine Exceptions werfen (Aufgrund dessen, dass actionPerformed weder in main noch in demselben Thread wie das Programm aufgerufen wird). Es wär dennoch gut, diese Exception iwie abzufangen.

Meine bisherige Idee ist, ein eigenen ExceptionHandler als Singleton zu schreiben, den man Exceptions angeben kann und ggf. werfen kann. Gibt es hier eine Möglichkeit anzusetzen?

Giesi35

(Themenstarter)

Anmeldungsdatum:
30. Januar 2011

Beiträge: 164

Ok hab eine provisorische Lösung gefunden, und zwar den Teil in einen try / catch - Block seperat zu setzen

1
2
3
4
5
6
7
8
9
try
{
    DoubleZahl = Double.parseDouble(JTextField.getText());
}
catch(Exception e)
{
    System.out.print(e);
    return;
}

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17623

Wohnort: Berlin

Exception e ist zu unspezifisch, und fängt weit mehr, als erwartet.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12

try
{
    String input = JTextField.getText ();
    if (input.length () > 0)
        doubleZahl = Double.parseDouble (input);
    // else Dialog: Mandatory
}
catch (NumberFormatException e)
{
    // Dialog-Info: Nur Zahlen vom Format ... erlaubt. 
}

Vorher die Länge abfangen (leeres Feld), sowie falsches Format - alles andere wäre überraschend, und sollte nicht mitgefangen werden.

Wenn die Zahl fehlt oder kaputt ist, den User informieren; sagen wo's hakt.

Antworten |