[과제] 1주차 계산기(오류)

Shaun.the.sheep·2025년 7월 9일

[과제] 1주차

목록 보기
3/3

들어가기 전

과거에 응용 쪽에 있을 때에도 항상 느꼈던 부분이지만 HE(human error)가 제일 힘들다...
모든 공정이 자동화 되고 자동으로 데이터가 수집이 되더라도 사람이 전혀 들어가지 않는 공정은 아직은 불가피하고 할 수 있다고 하더라도 비용적인 문제가 크다. 이번 계산기를 만들 때에도 그런 오류가 존재한다.

사람의 손가락을 기계로 컨트롤 하지 않는 이상 HE는 잡기가 힘들다....

            System.out.println("계산 모드를 선택해주세요. (번호 입력)");
            System.out.println("1, 원 계산.");
            System.out.println("2. 일반 계산");
            System.out.println("3. 프로그램 종료");
            int inputData = sc.nextint();

위와 같은 일부 사람에게 선택할 수 있는 사항이 주어지면 입력할 수 있는 경우의 수가 많은 키보드로 사람은 절대 1,2,3만 누르지 않는다. 절~ 대~

그렇기 때문에 예외 처리가 중요한 거다.

    public boolean tryParsingInt(String brInput) {
        boolean returnResult;
        try {
            inputData = Integer.parseInt(brInput);
            returnResult = true;
        } catch (Exception e) {
            returnResult = false;
        }

        return returnResult;
    }

이런 함수 하나만 넣어주면 숫자만 들어간다.

그리고 다른 숫자가 들어올 경우에는 오류 알림 문구를 넣어주면 끝이다

                          if (calculator.tryParsingInt(sc.next())) {
                                double result = 0;
                                switch (calculator.getInputData()) {
                                    case 1:
                                        result = calculator.calculateCircleAround(sc.nextInt());
                                        System.out.println("둘레 연산 결과: " + result);
                                        break;
                                    case 2:
                                        result = calculator.calculateCircleArea(sc.nextInt());
                                        System.out.println("넓이 연산 결과: " + result);
                                        break;
                                    case 3:
                                        System.out.println("모드가 초기화 됩니다. 현재 모드 : 원");
                                        calculator.circleExit = false;
                                        break;
                                    default:
                                    	System.out.println("맞지 않는 숫자입니다.");
                                    break;
                                }
                            }
                            else System.out.println("숫자가 아닙니다. 다시 입력해주세요");

제발.... 베잘 숫자거나 맞는 숫자만 입력...했으면...

0개의 댓글