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 } }