ArithmeticExection 에러 해결 방법

문정현·2023년 10월 31일

오늘도 알고리즘을 풀다 마주한 에러 하나 정리하려고 한다

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

에러 이름만 보면 산수를 하는데 문제가 있는거 같은데
ArithmeticException에 대해 알아보자

https://learn.microsoft.com/ko-kr/dotnet/api/system.arithmeticexception?view=net-7.0
마소에서 볼 수 있는 Exception의 정의는

산술, 캐스팅 또는 변환 작업에서 오류가 발생한 경우 throw되는 예외입니다.

다음과 같은 예외에 대한 기본 클래스가 있다고 하는데 첫번째에 해당하는 문제였다.

  • DivideByZeroException- 수수가 0일 때 정수 나누기에서 throw됩니다. 예를 들어 10을 0으로 나누려고 시도하면 예외가 DivideByZeroException throw됩니다.
  • NotFiniteNumberException에서 작업을 수행하거나 , , , Single.NegativeInfinitySingle.PositiveInfinityDouble.NegativeInfinitySingle.NaNDouble.PositiveInfinity및 를 반환Double.NaN할 때 throw되며 사용된 프로그래밍 언어는 해당 값을 지원하지 않습니다.
  • OverflowException- 작업의 결과가 대상 데이터 형식의 범위를 벗어나면 throw됩니다. 즉, 숫자의 MinValue 속성보다 작거나 해당 MaxValue 속성보다 큽습니다. 예를 들어 값에 200 + 200을 Byte 할당하려고 시도하면 400이 데이터 형식의 상한인 256보다 크기 때문에 예외가 Byte throw OverflowException 됩니다.

나의 코드의 나머지가 1인 수를 구하려고

answer % n == 1;

// 해결방법 매우 심플
if (n != 0) {
	answer % n == 1;
}

요런 로직이 있었는데 아무래도 n이 0인 케이스가 있었던 것 같다.

profile
기록 == 성장

0개의 댓글