들어가며
이번 계산기 만들기는 자바 문법의 실습과 객체 지향 개념의 적용을 목표로 했다.
클래스를 활용한 계산기와 클래스를 사용하지 않는 계산기의 두 가지 접근 방식으로 진행하였다.
그 중 Arithmeticexception: / by zero에 대해서 문제를 해결해보려고 한다.
1. 문제 상황 발생
클래스를 활용한 계산기를 만드는 도중 ArithmeticException : / by zero 라는 오류가 발생했다.
2. 원인 추론
정수를 0으로 나누게 되면 에러가 발생한다. / by zero가 숫자 0을 나타내는 부분이다.
코드에서 두 가지의 입력값을 받고, 받은 값을 나누기 하는 기능이 있다.
그 부분에서 0이 입력 된 후 나눗셈을 하면서 런타임 에러(뒷 부분은 실행되지 않고 프로그램이 죽어버림)가 발생한 것이다.
3. 해결 방안
런타임 에러를 방지하기 위해 '예외처리'라는 것을 해주면 된다.
예외처리는 프로그램 실행 시 발생할 수있는 예기치 못한 예외의 발생에 대비한 코드를 작성하는 것이다.
0이라는 값이 들어가지 않도록 할 수도 있지만,
예외처리를 하는 목적은 예외의 발생으로 인한 실행 중인 프로그램의 갑작스러운 비정상적으로 종료되는 것을 막고, 정상적인 실행상태를 유지할 수 있도록 하기 위해서이다.
예외처리를 하기 위해 try - catch문을 사용하였다.
try {
// 예외가 발생할 수 있는 코드
} catch (처리할 예외 타입 e) {
// try 블록 안에서 예외가 발생했을 때 예외를 처리하는 코드
}
try 블록에는 예외가 발생할 가능성이 있는 코드를 작성한다.
만약 try 블록 안에서 예외가 발생하면 바로 catch 블록이 수행된다.
try 블록 안에서 예외가 발생하지 않으면 예외는 처리되지않고 종료가 된다.
직접 try - catch 문을 사용해 예외처리를 한 부분이다.
firstNumber의 값과 secondNumber의 값을 나누었을 때, 런타임 에러(ArithmeticException)이 일어난다면
catch문에 있는 "나눗셈 연산에서 0으로 나눌 수 없습니다."가 출력 되도록 했다.
4. 결과 확인
0을 입력하고 나눗셈을 했을 시,
"나눗셈 연산에서 분모(두번째 정수)에 0이 입력될 수 없습니다."라는 문구가 뜨고 런타임 에러가 발생하지 않는다.
또한 0이 아닌 값을 입력했을 때도, 계산이 잘 되는 것을 볼 수 있다.
'❄️ 내일배움캠프 7기' 카테고리의 다른 글
[내배캠/Spring] 1주차(용어 모음집) (0) | 2024.10.31 |
---|---|
[JAVA] 숫자 야구 게임 개인과제 회고 (0) | 2024.10.28 |
2024.10.14 본 캠프 15일차 (0) | 2024.10.14 |
인텔리제이(IntelliJ) 폴더 안보이는 버그 (0) | 2024.10.14 |
[내배캠/JAVA] 2주차 숙제 (0) | 2024.10.11 |