`ArithmeticException`은 산술 연산이 유효하지 않을 때 발생하는 예외입니다. 주로 다음과 같은 상황에서 발생합니다:
1. **나누기 연산에서 분모가 0인 경우**: 산술 연산에서는 0으로 나누는 것이 허용되지 않습니다.
2. **정수 타입의 변수에서 최소값을 나타내는 상태에서 -1을 취하는 경우**: 예를 들어, `Integer.MIN_VALUE`의 절대값을 취하려고 할 때 발생합니다.
해결 방법은 예외가 발생하는 원인을 이해하고 적절한 조치를 취하는 것입니다:
1. **나누기 연산을 수행하기 전에 분모가 0인지 확인**: 나누기 연산을 수행하기 전에 분모가 0인지 확인하여 예외가 발생하지 않도록 합니다.
```java
int numerator = 10;
int denominator = 0;
if (denominator != 0) {
int result = numerator / denominator;
System.out.println("결과: " + result);
} else {
System.out.println("분모는 0일 수 없습니다.");
}
```
2. **음수인지 확인 후 절대값을 취하는 경우**: `-1`을 양수로 바꾸려면 `Math.abs()` 메서드를 사용하면 됩니다.
```java
int number = Integer.MIN_VALUE;
if (number == Integer.MIN_VALUE) {
// 절대값 취하기
int absValue = Math.abs(number);
System.out.println("절대값: " + absValue);
} else {
System.out.println("number는 MIN_VALUE가 아닙니다.");
}
```
`ArithmeticException`은 예외 상황에 대한 명확한 처리를 통해 발생할 수 있는 문제를 방지하도록 도와줍니다. 그러나 예외를 최대한 미리 예방하는 것이 중요하며, 예외 처리는 문제를 해결하는 마지막 수단으로 사용되어야 합니다.
'JAVA > EXCEPTION' 카테고리의 다른 글
NullPointerException 발생원인과 해결방법 (0) | 2023.07.21 |
---|---|
NullPointerException Cause and solution (0) | 2023.07.21 |
ArithmeticException Cause and solution (0) | 2023.07.21 |
java.lang.Exception type (0) | 2023.07.21 |
java.lang.Exception 종류 (0) | 2023.07.21 |