BigDecimal 연산 중 ArithmeticException가 발생하는 경우는 크게 3개가 있다.
피제수(어떤 수를 나누는 수)가 0일 때 에러가 발생한다.
RoundingMode 파라미터가 설정되지 않은 상태에서 divide(...) 연산 결과가 무한소수일 때 발생
RoundingMode가 UNNECESSARY인데 divide(...) 연산 결과가 무한소수일 때 발생
두 번째와 세 번째 같은 경우에는 RoudingMode만 잘 설정해주면 문제 없다. 아래 옵션 중 원하는 방식을 사용하면 될 것 같다.
ex)
a.divide(b, 10, RoundingMode.HALF_EVEN) // 소수점 10의 자리까지 표시

따라서 대부분의 문제는 첫 번째 경우에 발생한다. 피제수로 0이 들어왔을 때 따로 처리를 해주거나, try-catch에서 ArithmeticException를 핸들링 해주면 된다.