안드로이드 코딩을 하다보면 ArithmeticException이라는 에러를 마주치게 됩니다.
아주 간단히 수정이 가능한 에러이며, 아래 수정 코드를 참고하시기 바랍니다.
1. 에러 코드 (오류)
- . 아래 코드에서 10 / 0을 하는 부분이 있는데, 실제 수학에서 0으로 나누는 경우는 없습니다.
이렇게 수학적으로 에러가 발생하는 경우가 문제가 됩니다.
2. 오류 코드
-. 오류 발생시 아래처럼 오류를 출력하게 됩니다.
3. 수정 코드
-. 아래 파란색으로 마킹한 부분처럼 수학적인 부분을 수정하게 되면 문제는 깔끔하게 해결됩니다.
아주 간단하지만, 실제 복잡한 코드를 구현할때는 놓치는 경우가 많은 에러입니다.
*. 에러 로그 원문
FATAL EXCEPTION: main Process: com.picker.javaexception, PID: 27523 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.picker.javaexception/com.picker.javaexception.MainActivity}: java.lang.ArithmeticException: divide by zero 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.ArithmeticException: divide by zero at com.picker.javaexception.MainActivity.plusNumber(MainActivity.java:21) at com.picker.javaexception.MainActivity.onCreate(MainActivity.java:17) 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) |
*. 익셉션 백서 원문
Thrown when an exceptional arithmetic condition has occurred. For example, an integer "divide by zero" throws an instance of this class. ArithmeticException objects may be constructed by the virtual machine as if stack trace was not writable.
Summary
ArithmeticException()Constructs an ArithmeticException with no detail message. |
ArithmeticException(String s)Constructs an ArithmeticException with the specified detail message. |
From class java.lang.Throwable | |
From class java.lang.Object |
Public constructors
ArithmeticException
public ArithmeticException ()
Constructs an ArithmeticException with no detail message.
ArithmeticException
public ArithmeticException (String s)
Constructs an ArithmeticException with the specified detail message.
s | String: the detail message. |
*. 수정 코드 원문
package com.picker.javaexception;
import android.os.Bundle;
import android.util.Log;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
private static final String TAG = "javaexception";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
plusNumber();
}
private void plusNumber() {
int a = 10 / 0;
Log.d(TAG, "plusNumber: " + a);
}
}
'안드로이드 개발' 카테고리의 다른 글
AssertionError 해결 방법 (0) | 2023.05.06 |
---|---|
android.view.WindowManager$BadTokenException 해결 (1) | 2023.05.05 |
java.lang.ClassCastException 해결 법 (0) | 2023.05.04 |
java.lang.IllegalThreadStateException 해결 법 (0) | 2023.05.04 |
java.lang.UnsupportedOperationException 해결 법 (0) | 2023.05.04 |