Warum diese NumberFormatException?
Habe ich diese stack-trace (Teil)
Servlet.service() for servlet action threw exception
java.lang.NumberFormatException: For input string: "37648"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Long.parseLong(Long.java:403)
at java.lang.Long.valueOf(Long.java:482)
at java.lang.Long.decode(Long.java:593)
in einem meiner logfile
Ich weiß nicht, was real war-input-string.
Aber die user gemacht hatte zufällig die gleiche stack-trace.
Wie so ein stacktrace kann passieren?
InformationsquelleAutor der Frage Xavier Combelle | 2010-02-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wahrscheinlich, weil Sie eine führende null haben in Ihrer Eingabe.
Diese läuft wunderbar:
Aber wenn Sie das ändern:
:
...es wird ungültig, oktal, und die Ausnahme aus
Long.parseLong
nicht die führende null:Es nicht, weil
decode
AnrufeparseLong
ohne die null, aber mit dem Basis-set zu 8.Sprechen verdecken. 🙂 Also, wenn Sie ein update für Ihr Programm die Ausnahme behandelt, indem die tatsächlichen Eingang, werden Sie wahrscheinlich feststellen, es ist etwas entlang jenen Linien.
InformationsquelleAutor der Antwort T.J. Crowder