if (Exception geworfen) then {} else {}

Status
Nicht offen für weitere Antworten.

julchen81

Bekanntes Mitglied
Hallo,

ich möchte den durch einen User in ein Textfeld eingegebenen Text prüfen. Es dürfen nur Zahlen eingegeben werden.

Meine Idee schaut bis jetzt folgendermaßen aus:
Code:
if (Integer.parseInt (tfL.getText()) wirft keine NumberFormatException) then {mache normal weiter} ...

(tfL heißt mein Textfeld)

Kann man so was in der if-Abfrage umsetzen? Wenn ja, bitte wie?

LG Julia
 

julchen81

Bekanntes Mitglied
ja, try... catch kenne ich, aber ich wollte wissen, ob das auch mit if geht, weil mir das so komisch vor kam sonst... irgendwie war ich nicht zufrieden damit.

Allerdings läuft's jetzt problemlos mit try...catch, also passt!

Danke für deine Hilfe!

Julia
 

J.C.

Mitglied
trazzag hat gesagt.:
statt if... then... solltest du dir mal try... catch... angucken

Nein, sollte er nicht. Try catch sollte wirklich nur für ausnhame situationen verwenden. Eingaben des benutzers durch ne Exception abzufangen ist ganz schlechter Stil.

Geh den String zeichen für zeichen durch, mach nen char draus und prüfe mit isDigit(char ch) ob es eine zahl ist


MfG,
J.C.
 

gizmo

Bekanntes Mitglied
Wie wärs damit?

Code:
public final class IntDocument implements Document {
        private Document document;

        private IntDocument(Document aDocument) {
            document = aDocument;
        }

        public void insertString(int someOffset, String someStr, AttributeSet anAttributeSet) throws BadLocationException {
            String tempInsertString = "";
            if (null != someStr) {
                tempInsertString = someStr.replaceAll("\\D", "");
            }
            document.insertString(someOffset, tempInsertString, anAttributeSet);
        }

        public void addDocumentListener(DocumentListener someListener) {
            document.addDocumentListener(someListener);
        }

        public void addUndoableEditListener(UndoableEditListener someListener) {
            document.addUndoableEditListener(someListener);
        }

        public Position createPosition(int someOffs) throws BadLocationException {
            return document.createPosition(someOffs);
        }

        public Element getDefaultRootElement() {
            return document.getDefaultRootElement();
        }

        public Position getEndPosition() {
            return document.getEndPosition();
        }

        public int getLength() {
            return document.getLength();
        }

        public Object getProperty(Object someKey) {
            return document.getProperty(someKey);
        }

        public Element[] getRootElements() {
            return document.getRootElements();
        }

        public Position getStartPosition() {
            return document.getStartPosition();
        }

        public void getText(int someOffset, int someLength, Segment someTxt) throws BadLocationException {
            document.getText(someOffset, someLength, someTxt);
        }

        public String getText(int someOffset, int someLength) throws BadLocationException {
            return document.getText(someOffset, someLength);
        }

        public void putProperty(Object someKey, Object someValue) {
            document.putProperty(someKey, someValue);
        }

        public void remove(int someOffs, int someLen) throws BadLocationException {
            document.remove(someOffs, someLen);
        }

        public void removeDocumentListener(DocumentListener someListener) {
            document.removeDocumentListener(someListener);
        }

        public void removeUndoableEditListener(UndoableEditListener someListener) {
            document.removeUndoableEditListener(someListener);
        }

        public void render(Runnable someR) {
            document.render(someR);
        }
    }

    // Anwendung:
    JTextField field = new JTextField();
    field.setDocument(new IntDocument(field.getDocument()));
 

chilla

Mitglied
wäre es nicht einfach das ganze mit regex zu verwirklichen??

ps.:
"Nein, sollte er nicht."

*eieiei* ;)
 

Marco13

Top Contributor
J.C. hat gesagt.:
Nein, sollte er nicht. Try catch sollte wirklich nur für ausnhame situationen verwenden. Eingaben des benutzers durch ne Exception abzufangen ist ganz schlechter Stil.

Geh den String zeichen für zeichen durch, mach nen char draus und prüfe mit isDigit(char ch) ob es eine zahl ist

:autsch: Also, für ints lass' ich mir das ja noch gefallen. Wenn man nur positive ints eingeben will. Bei negativen müßte man schon aufpassen, aber spätestens, wenn man floats in der Form -1.23e-4 oder 123.E3 damit verifizieren will, ist das doch krampfig. Dann macht man sich einfach eine Methode
private static boolean isValid(String string) { ... }
und ruft die auf. Pragmatische (oder "vernünftige"?) Leute schreiben die dann einfach als
Code:
private static boolean isValid(String string) 
{ 
    float f = 0;
    try
    {
        f = Float.parseFloat(string);
    }
    catch (NumberFormatException e)
    {
        return false;
    }
    return (!Float.isInfinite(f) && !Float.isNaN(f));
}
und Masochisten überlegen sich, wie eine Regular Expression dafür aussehen muss. Wer ehrgeizig ist, möge seinen Vorschlag für diese Regular Expression bitte hier posten (aber nicht enttäuscht sein, wenn ich ihm den Fall nenne, wo sie ihm um die Ohren fliegt :wink: )
 

Wildcard

Top Contributor
Da kann ich Marco13 nur beipflichten. Gerade bei int drängt sich die NumberFormatException doch geradezu auf.
 

The_S

Top Contributor
J.C. hat gesagt.:
Nein, sollte er nicht. Try catch sollte wirklich nur für ausnhame situationen verwenden. Eingaben des benutzers durch ne Exception abzufangen ist ganz schlechter Stil.

Halt ich für n Gerücht ;)

J.C. hat gesagt.:
Geh den String zeichen für zeichen durch, mach nen char draus und prüfe mit isDigit(char ch) ob es eine zahl ist

Na dann doch lieber sowas in die Richtung

Code:
if ("5323,53".matches("[\\-]{0,1}[0-9]*[\\.,]{0,1}[0-9]*")) {
   System.out.println("Double, bei dem ggf. noch ein ',' durch einen '.' zum Parsen ersetzt werden muss");
}
 

Marco13

Top Contributor
Hobbit_Im_Blutrausch hat gesagt.:
Na dann doch lieber sowas in die Richtung

Code:
if ("5323,53".matches("[\\-]{0,1}[0-9]*[\\.,]{0,1}[0-9]*")) {
   System.out.println("Double, bei dem ggf. noch ein ',' durch einen '.' zum Parsen ersetzt werden muss");
}

Sollte das ein Versuch sein, auf meine Aufforderung einzugehen? (Wenn ja, muss man den wohl nicht so ernst nehmen :wink: )
 

Janus

Bekanntes Mitglied
JavaFred hat gesagt.:
Fehlerhafte Eingaben sind DAS Positivbeispiel für Exceptions.

was gegen die verwendung der exception als ausnahmebehandlung spricht ist allerdings, dass NFE eine runtime exception ist. runtime exceptions werden normalerweise nur dann verwendet, wenn es sich um programmierfehler handelt. eine IOException z.b. kann der entwickler im vorfeld nicht prüfen. wenn auf eine resource nicht zugegriffen werden kann, geht es halt nicht. einen string daraufhin zu prüfen, ob er auch tatsächlich eine parsbare zahl enthält, ist durchaus möglich. java beinhaltet nämlich eine exception vom typ ParseException, die hier aber nicht verwendet wurde.

allerdings steht hier der pragmatische ansatz ganz klar im vordergrund. NFE fliegt wirklich nur dann, wenn im string keine gültige zahl enthalten war. also fangen und eine entsprechende fehlerbehandlung vornehmen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Exception wird nicht geworfen Java Basics - Anfänger-Themen 7
I Exception wird gefangen, aber trotzdem in Error Log? Java Basics - Anfänger-Themen 10
W Null-Pointer Exception beim Programmstart Java Basics - Anfänger-Themen 8
Ostkreuz String Exception Java Basics - Anfänger-Themen 8
Fiedelbambu Exception in Application constructor Java Basics - Anfänger-Themen 3
S leeres Array statt Null Pointer Exception ausgeben Java Basics - Anfänger-Themen 20
F abbruch Exception lässt sich nicht erstellen Java Basics - Anfänger-Themen 2
U Warum kriege ich hier eine nullpointer exception, sehe den Fehler nicht (swing) Java Basics - Anfänger-Themen 1
F Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11 at main.main(main.java:11) Java Basics - Anfänger-Themen 2
M Exception in thread "main" java.util.NoSuchElementException Java Basics - Anfänger-Themen 2
N Exception beim Verwenden von Arraylist? Java Basics - Anfänger-Themen 10
B Compiler-Fehler Fehlermeldung Exception in thread, falsche Eingabewert Java Basics - Anfänger-Themen 2
S JavaKara Null Exception Error Java Basics - Anfänger-Themen 4
T Eigene Exception - ohne werfen abfangen Java Basics - Anfänger-Themen 2
LiFunk Exception: es dürfen nur Nummern eingelesen werden Java Basics - Anfänger-Themen 6
low_in_the_head Eigene Exception nutzen Java Basics - Anfänger-Themen 4
1 Exception Java Basics - Anfänger-Themen 2
S Kriege Fehler "Exception in thread" beim Benutzen von SubStrings. Java Basics - Anfänger-Themen 2
I JAX-RS Exception Handling Java Basics - Anfänger-Themen 4
L Meine erste eigene Exception Klasse Java Basics - Anfänger-Themen 10
J null exception Array Java Basics - Anfänger-Themen 5
H Frage zu Throw Exception Java Basics - Anfänger-Themen 2
O Exception in thread "main" java.lang.ArithmeticException: / by zero Java Basics - Anfänger-Themen 4
M Wie kann ich bei int-Variablen im exception handler auf bestimmte Strings reagieren? Java Basics - Anfänger-Themen 5
C Exception-Frage Java Basics - Anfänger-Themen 3
B Exception in thread "AWT-EventQueue-0" java.util.ConcurrentModificationException Java Basics - Anfänger-Themen 8
I Exception bei Button mit wait() und notifyAll() Java Basics - Anfänger-Themen 3
N Wie teste ich eine geworfene Exception? Java Basics - Anfänger-Themen 8
R Methoden ArrayList clonen wirft exception Java Basics - Anfänger-Themen 3
D Scanner- Exception NoSuchElementException Java Basics - Anfänger-Themen 2
N Exception werfen bei falscher Datumseingabe Java Basics - Anfänger-Themen 14
A Exception handeling mit finally und objektreferenzen Java Basics - Anfänger-Themen 6
D Frage zu Strings einer Exception Java Basics - Anfänger-Themen 4
S Exception Java Basics - Anfänger-Themen 2
J Exception-Aufgabe Java Basics - Anfänger-Themen 8
S Verwenden von throw Exception an der Funktion Java Basics - Anfänger-Themen 2
R Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
S Compiler-Fehler Exception in thread "main" java.lang.Error: Unresolved compilation problem: Java Basics - Anfänger-Themen 6
Z Fragen zu Exception (Throws/throw) Java Basics - Anfänger-Themen 7
OSchriever Exception für Abbrechen-Schaltfläche JOptionpane Java Basics - Anfänger-Themen 9
J Dateien in Verzeichnissen rekursiv auflisten wirft Exception Java Basics - Anfänger-Themen 4
J Exception unreachable Java Basics - Anfänger-Themen 12
O unchecked Exception Java Basics - Anfänger-Themen 4
P Exception werfen Java Basics - Anfänger-Themen 15
B EJB und Arquillian - bekomme Nullpointer Exception beim Aufruf der EJB Klasse Java Basics - Anfänger-Themen 40
S Exception bei Verwendung von LocalDate Java Basics - Anfänger-Themen 19
I Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 Java Basics - Anfänger-Themen 3
D Warum die Nullpointer Exception Java Basics - Anfänger-Themen 6
O Exception behandlung einfach Ueben mit Fakt! Java Basics - Anfänger-Themen 10
I OOP Was ist die "Exception Hierarchie" ? Java Basics - Anfänger-Themen 3
U Null Exception aber keine Ahnung warum Java Basics - Anfänger-Themen 5
G Exception und Ausgabe der Duplikate Java Basics - Anfänger-Themen 6
H Try Catch Throw Exception Java Basics - Anfänger-Themen 1
W Exception in Main abfangen oder in der Methode? Java Basics - Anfänger-Themen 10
F Referenz an ein Objekt in einer anderen Klasse erstellen(Nullpointer exception) Java Basics - Anfänger-Themen 6
Mosquera Exception Java Basics - Anfänger-Themen 5
M rekursive division/0 mit exception Java Basics - Anfänger-Themen 18
N Nullpointer exception Java Basics - Anfänger-Themen 4
L Eigene Exception schreiben bei zu langem Array Java Basics - Anfänger-Themen 10
R Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 10
I equals (Override) mit eigener Exception (keine Runtime-Exception) Java Basics - Anfänger-Themen 9
S Array Grenzen-Exception Java Basics - Anfänger-Themen 11
E InputStream im Servlet wirft Exception Java Basics - Anfänger-Themen 5
D Erste Schritte Java.lang.NullPointer.Exception Java Basics - Anfänger-Themen 8
G Arrays out of Bounds exception Java Basics - Anfänger-Themen 2
H Compiler-Fehler Out of Bunce Exception bei einem Char Java Basics - Anfänger-Themen 6
C Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 Java Basics - Anfänger-Themen 3
C Null Pointer Exception Java Basics - Anfänger-Themen 10
F Klassen Eigene Exception Bedingungen festlegen Java Basics - Anfänger-Themen 2
G Null Pointer Exception Java Basics - Anfänger-Themen 4
GreenTeaYT Exception und zur OOP fragen? Java Basics - Anfänger-Themen 3
O Exception bei Parse-Vorgang Java Basics - Anfänger-Themen 17
T Exception Problem Java Basics - Anfänger-Themen 5
Z Getter/Setter NullPointer Exception Java Basics - Anfänger-Themen 6
W Nullpointer Exception bei .add(...) Java Basics - Anfänger-Themen 6
L Input/Output InputMismatch.Exception Java Basics - Anfänger-Themen 7
B Exception Liste von Liste Java Basics - Anfänger-Themen 3
D Throw Exception Java Basics - Anfänger-Themen 2
MiMa JavaDoc Exception @throws schlagen an Java Basics - Anfänger-Themen 4
J Exception in thread "main" Java Basics - Anfänger-Themen 1
B Exception richtig einbinden Java Basics - Anfänger-Themen 1
M Exception soll Werte mitgeliefert bekommen Java Basics - Anfänger-Themen 12
M Selbstdefinierte Exception Java Basics - Anfänger-Themen 5
B Exception Throwable Java Basics - Anfänger-Themen 11
M Erste Schritte Start Methode - Exception Java Basics - Anfänger-Themen 1
F Operatoren Wieso fliegt hier eine NullPointer Exception :( Java Basics - Anfänger-Themen 3
F nullpointer exception - arrayerstellung Java Basics - Anfänger-Themen 4
K Iterator-Interface implementieren mit Exception Handlung Java Basics - Anfänger-Themen 1
H Erste Schritte Exception: 0 Java Basics - Anfänger-Themen 2
A Exception vs. Testklasse (Programm testen) Java Basics - Anfänger-Themen 2
L Fehler: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 4
K Exception nur im "Debug"-Modus und jedem 3.-5. mal Ausführen Java Basics - Anfänger-Themen 3
S Java memory fehler: Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap spa Java Basics - Anfänger-Themen 5
L [JFrame] Exception - woher? Java Basics - Anfänger-Themen 8
N Threads Exception in thread "main"... Feher bei dem Versuch ein Radius zu berechnen Java Basics - Anfänger-Themen 4
R "Missbrauch" von Exception zum Programmfluss Java Basics - Anfänger-Themen 1
U Exception: OutOfMemoryError Java Basics - Anfänger-Themen 11
A Int Eingabe: String mit Exception abfangen. Aber wie? Java Basics - Anfänger-Themen 3
A Code läuft nicht, Fehlermeldung Exception in thread "main" java.lang.Error: Unresolved compilation " Java Basics - Anfänger-Themen 11
V Threads Exception in Thread behandeln Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben