public class Calculator {
/* 연산 결과를 저장하는 컬렉션 타입 필드 선언 및 생성 */
public 반환타입 calculate(...매개변수) {
/* 위 요구사항에 맞게 구현 */
/* return 연산 결과 */
}
}
일단 예외처리를 이렇게 하기로 결정했다.
- App.java
- 첫 번째 숫자가 양의 정수인지 확인
- 두 번째 숫자가 양의 정수인지 확인
- Calculator.java
- 나누기(/)를 할 때 분모가 0이 아닌 지 확인
- 잘못된 연산 입력했는지 확인
일단 예외처리를 할 클래스를 만들었다.
public class BadException extends Exception {
public BadException(String type) {
super("잘못 입력되었습니다.! " + type + "를 다시 입력해주세요.");
}
}
type이라는 문자열의 매개변수를 받을 수 있게 하였다.
그리고 사칙연산기능을 수행하는 클래스 Calculator에서 사칙연산을 하고, 예외처리를 하는 것 까지 해서 만들었다.
package calculator;
import java.util.*;
public class Calculator {
/* 연산 결과를 저장하는 컬렉션 타입 필드 선언 및 생성 */
List<Double> results = new ArrayList<>();
public Double calculate(int num1, int num2, char op) throws BadException {
double result = 0;
switch (op) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
if (num2 == 0) {
throw new BadException("분모가 0이 아닌 양의 정수");
} else {
result = num1 / num2;
}
break;
default:
throw new BadException("사칙연산자[+, -, *, /]");
}
results.add(result);
return result;
}
}

연산기호를 잘못입력했을 때 내가 생성한 클래스가 잘 나온 것을 확인할 수 있었다.