TIL

[TIL]예외 처리 개선

높하늬바람 2025. 5. 14. 09:48

TIL - 2025.03.11

오늘 배운 것 개요

  • 코드카타(Code Kata) 진행: 알고리즘 문제 풀이 연습.
  • 장바구니 기능 개선: 장바구니 조회, 특정 상품 제거, 전체 삭제 기능 추가.
  • 예외 처리 강화: 장바구니가 비어 있을 때 특정 동작(4, 5, 6 입력) 실행 방지.
  • 문자열 정렬 최적화: Arrays.sort()StringBuilder를 활용한 내림차순 정렬.

1. Kiosk 프로젝트

1. 장바구니 기능 개선

1. OOP 원칙 점검

  1. 개선 사항
    • viewCart()를 활용하여 장바구니 상태 출력.
    • order()에서 사용자 유형별 할인 적용 기능 추가 예정.
    • removeCart()에서 Stream API를 사용하여 특정 상품을 효율적으로 제거.

1. 예외 처리 강화

기존 문제점

  • 장바구니가 비어 있는데 4, 5, 6 입력 시 예외가 발생하지 않음.
  • 실행 방지 기능 추가 필요
 public void cart(int numinput, Scanner sc){
        if(cart.isEmpty() && (numinput == menus.size() + 1 || numinput == menus.size() + 2 || numinput == menus.size() + 3)){
            throw new IllegalStateException("올바른 숫자를 입력해주세요");
        }

        if (numinput == menus.size() + 1) {//메뉴 추가 대비 하드코딩X
            System.out.println("구매창으로 이동합니다.");
            order(sc);
        } else if (numinput == menus.size() + 2){
            cart.clear();
            System.out.println("장바구니를 비웠습니다.");
        } else if (numinput == menus.size() + 3){
            System.out.println("삭제 하실 제품을 선택해주세요");
            removeCart(sc);
        } else {
            System.out.println("입력값을 확인해 주세요");
        }
    }
try {
    cart(numinput, sc);
} catch (IllegalStateException e) {
    System.out.println(e.getMessage());
}
  • 장바구니가 비어 있을 때 4, 5, 6 입력 시 IllegalStateException 발생.

2. 알고리즘 학습

1. 문자열 내림차순 정렬 최적화

1. 풀이 방법

  • Stringchar[]로 변환 후 Arrays.sort() 적용 → 정렬 후 뒤집는 방식 사용.

오늘의 결론

  1. 장바구니 기능 강화 (조회, 특정 삭제, 전체 삭제).
  2. 예외 처리 개선 (IllegalStateException 추가).
  3. 문자열 정렬 최적화 (Collections.reverseOrder() 활용)

다음 학습 목표

  • 사용자 유형별 할인 적용 (Enum 활용)
  • 람다 & 스트림을 이용한 코드 최적화
  • 추가 예외 처리 및 버그 수정

'TIL' 카테고리의 다른 글

[TIL]파일 입출력  (0) 2025.05.14
[TIL]Enum 활용  (0) 2025.05.14
[TIL]객체 지향 원칙과 코드 리팩토  (0) 2025.05.14
[TIL]Kiosk 프로젝트 구조 정리  (0) 2025.05.14
[TIL]REST API를 활용한 GitHub 레포지토리 목록 조회  (0) 2025.05.14