Арифметическое исключение

Вот мой код Java. Я сталкиваюсь с ошибкой "Fatal Exception main"
Я хочу, чтобы мое приложение запускалось успешно.
Пожалуйста, помогите мне. Я новичок в Android

if(queList.size() == question_Counter+1) {


        //  answerList = new ArrayList<String>();
            final int count= dbhelper.getCorrectAnswerCount(answerList);
            count1=count;
            Log.d("bachhhaaaa**********", "Test Activity"+count1);


            String TotalMark  = dbhelper.totalMark();
            Log.d("TEST<<<<<<<<<<<<TotalMark", TotalMark);

            String NoOfQuestion =dbhelper.noOfQuestion();
            Log.d("TEST<<<<<<<<<<<<NoOfQuestion", NoOfQuestion);

            int perQuestionValue=0;
            perQuestionValue= Integer.parseInt(TotalMark) /Integer.parseInt(NoOfQuestion);


            int TotalCountMark=0;
            TotalCountMark = count1 * perQuestionValue;

            String answerString = "Answer";
            for(int i=0;i<answerList.size();i++){

                answerString = answerString+","+answerList.get(i);


            }
            String statusStringOfUserAnswer  = dbhelper.getStatusStringOfUserAnswer(answerList);
            dbhelper.saveOrigionalMarkInDatabase(TotalCountMark,answerString,statusStringOfUserAnswer);  // saves users total marks into database



            Intent intent =new Intent(TestActivity.this,Result.class);
            intent.putExtra("answerString", answerString);
            intent.putExtra("statusStringOfUserAnswer", statusStringOfUserAnswer);
            intent.putExtra("AllResult", count1);
            startActivity(intent);
          finish();
          return;

        } 

Это мой logcat:

03-12 03:09:45.001: E/AndroidRuntime(2055): FATAL EXCEPTION: main
03-12 03:09:45.001: E/AndroidRuntime(2055): java.lang.ArithmeticException: divide by zero
03-12 03:09:45.001: E/AndroidRuntime(2055):     at com.example.exam.TestActivity$1.onClick(TestActivity.java:132)
03-12 03:09:45.001: E/AndroidRuntime(2055):     at android.view.View.performClick(View.java:4204)
03-12 03:09:45.001: E/AndroidRuntime(2055):     at android.view.View$PerformClick.run(View.java:17355)
03-12 03:09:45.001: E/AndroidRuntime(2055):     at android.os.Handler.handleCallback(Handler.java:725)
03-12 03:09:45.001: E/AndroidRuntime(2055):     at android.os.Handler.dispatchMessage(Handler.java:92)
03-12 03:09:45.001: E/AndroidRuntime(2055):     at android.os.Looper.loop(Looper.java:137)
03-12 03:09:45.001: E/AndroidRuntime(2055):     at android.app.ActivityThread.main(ActivityThread.java:5041)
03-12 03:09:45.001: E/AndroidRuntime(2055):     at java.lang.reflect.Method.invokeNative(Native Method)
03-12 03:09:45.001: E/AndroidRuntime(2055):     at java.lang.reflect.Method.invoke(Method.java:511)
03-12 03:09:45.001: E/AndroidRuntime(2055):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
03-12 03:09:45.001: E/AndroidRuntime(2055):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
03-12 03:09:45.001: E/AndroidRuntime(2055):     at dalvik.system.NativeStart.main(Native Method)

1 ответ

Во-первых, научитесь читать (и гуглить!) Ошибку трассировки стека.

Обратите внимание на трассировку стека:

java.lang.ArithmeticException: divide by zero

Согласно вашему коду, единственное место, которое вы разделяете, находится здесь, поэтому проблема, скорее всего, здесь:

        perQuestionValue= Integer.parseInt(TotalMark) /Integer.parseInt(NoOfQuestion);

В принципе, Integer.parseInt(NoOfQuestion) возвращает ноль. Теперь давайте углубимся. Где NoOfQuestion определены? Прямо здесь:

String NoOfQuestion =dbhelper.noOfQuestion();

Это означает, что ваш dbhelper классы нестатическим методом, noOfQuestion() возвращается 0. Вы не предоставили свой dbhelper класс в вашем вопросе, поэтому я не могу сказать, почему, но есть простой способ проверить:

Log.v(TAG, dbhlper.noOfQuestion());

Надеюсь, вы знакомы с этим типом отладки: при этом будет выведена переменная, возвращаемая noOfQuestion, так что вы можете понять, почему это 0.

Дайте мне знать, был ли этот ответ полезным для вас. Если у вас есть еще вопросы, не стесняйтесь задавать их, комментируя или редактируя свой оригинальный вопрос.

Ruchir

Другие вопросы по тегам