728x90
반응형
안드로이드 자바 개발을 하다보면 NumberFormatException 을 마주치는 경우가 흔하다.
이는 변수의 타입을 잘못 캐스팅할때 주로 발생하게된다.
1. 예제 (오류 코드)
아래의 오류 코드를 보면 munja라는 문자열 변수를 int 값으로 변경하기 위해 캐스팅을 시도했다.
"123"과 같은 숫자형은 int 로 캐스팅이 가능하지만, 알파벳과 같은 문자열은 불가능하다.
이때 발생하는것이 NumberFormatException 이다.
2. 문제 로그
3. 해결 방법
아래처럼 타입에 맞게 숫자형으로 문자열이 입력되면 해결이 됩니다.
*. 문제로그 원문
E FATAL EXCEPTION: main Process: com.picker.javaexception, PID: 19061 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.picker.javaexception/com.picker.javaexception.MainActivity}: java.lang.NumberFormatException: For input string: "munja" at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3635) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3792) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2210) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loopOnce(Looper.java:201) at android.os.Looper.loop(Looper.java:288) at android.app.ActivityThread.main(ActivityThread.java:7839) at java.lang.reflect.Method.invoke(Native Method) at co m.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) at co m.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003) Caused by: java.lang.NumberFormatException: For input string: "munja" at java.lang.Integer.parseInt(Integer.java:615) at java.lang.Integer.parseInt(Integer.java:650) at com.picker.javaexception.MainActivity.plusNumber(MainActivity.java:21) at com.picker.javaexception.MainActivity.onCreate(MainActivity.java:16) at android.app.Activity.performCreate(Activity.java:8051) at android.app.Activity.performCreate(Activity.java:8031) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1329) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3608) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3792) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2210) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loopOnce(Looper.java:201) at android.os.Looper.loop(Looper.java:288) at android.app.ActivityThread.main(ActivityThread.java:7839) at java.lang.reflect.Method.invoke(Native Method) at co m.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) at co m.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003) |
*. NumberFormatException 관련 백서
Thrown to indicate that the application has attempted to convert a string to one of the numeric types, but that the string does not have the appropriate format.SummaryPublic constructorsNumberFormatExceptionAdded in API level 1
NumberFormatExceptionAdded in API level 1
|
반응형
'안드로이드 개발' 카테고리의 다른 글
java.lang.SecurityException: Permission Denial: starting Intent 해결 (0) | 2023.05.04 |
---|---|
StringIndexOutOfBoundsException 해결 방법 (0) | 2023.05.04 |
NoSuchMethodException 해결법 (0) | 2023.05.04 |
java.lang.ArrayStoreException 간단 해결 방법 (0) | 2023.05.03 |
[해결완료] java.lang.ArrayIndexOutOfBoundsException (0) | 2023.05.03 |