Octoping의 블로그
Published 2022. 6. 18. 15:47
Divided by Zero 에러 double 형 언어/Java

java.lang.ArithmeticException: / by zero

이 에러는 정수를 0으로 나눴을 때 발생하는 오류이다.

하지만 흥미로운 점이 있다.

 

int a = 10;
System.out.println(a / 0);

이를 실행할 경우 JVM은 위의 "/ by zero" 예외를 반환하지만

 

double a = 10;
System.out.println(a / 0);

int a = 10;
System.out.println(a / 0.0);

이 두 경우는 JVM이 Infinity를 반환하게 된다. 따라서 try-catch 문으로 캐치할 수 없다!

이렇게 int 형에서는 예외를 발생하던 코드가 double형 (float 형에서도 동일함)에서는 Inifinity를 반환하는 이유는 Java가 부동 소수점 데이터를 저장하는 방식 때문이다.

이를 방지하기 위해서는 Double.isInfinite() 함수나 Double.isNaN() 함수를 이용해야한다.

profile

Octoping의 블로그

@Octoping

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!