Məqalələr

ArithmeticException ilə bağlı qısa qeyd

Bildiyiniz kimi ArithmeticException sıfıra bölmə əməliyyatına cəhd zamanı baş verir və JVM tərəfindən fırladılır.

  • int result = 7 / 0;

Output:

  • Exception in thread "main" java.lang.ArithmeticException: / by zero

 

Kodumda sıfıra bölmə ehtimalı var idi, buna görə “handle” etmək istəyirdim. Öncə dəqiqləşdirmək üçün manual sıfır verib yoxladım, amma Exception baş vermədi. Bir az diqqətlə baxdıqdan sonra gördüm ki, xırda bir şey imiş, amma indiyədək fikir verməmişdim.

Səbəb isə odur ki, əgər bölünən və bölən hər ikisi int tipindədirsə, o zaman sıfıra bölmə Exception verir. Yox əgər double tipindədirsə, Exception baş vermir. Hətta əgər tərəflərdən ancaq biri double tipindədirsə (fərqi yoxdur bölünən yaxud bölən) yenə Exception baş vermir:

package az.mm.test;

/**
 *
 * @author MM <[email protected]>
 */
public class ExceptionTest {

    public static void main(String[] args) {

        int i1 = 5, i2 = 0;
        double d1 = 5, d2 = 0;
        System.out.println(i1 / i2);  // throws java.lang.ArithmeticException: / by zero
        System.out.println(d1 / d2);  // Infinity
        System.out.println(d1 / i2);  // Infinity
        System.out.println(i1 / d2);  // Infinity

    }
}

 

About the author

Mushfiq Mammadov

Leave a Comment


The reCAPTCHA verification period has expired. Please reload the page.

 

This site uses Akismet to reduce spam. Learn how your comment data is processed.