본문 바로가기

flutter앱개발과정

콘솔 쇼핑몰 - 트러블 슈팅(Troubleshooting)

트러블슈팅 (Troubleshooting)

1️⃣ 장바구니에 상품 추가 시 존재하지 않는 상품을 입력하면 예외 처리되지 않는 문제

🔹 문제

  • 사용자가 존재하지 않는 상품명을 입력했을 때 firstWhere를 사용하여 상품을 찾으려 했지만, 존재하지 않는 경우 예외 발생.

✅ 해결 방법

  • any()를 사용하여 먼저 상품이 존재하는지 확인한 후, firstWhere를 실행하도록 수정. 
bool exist = productList.any(
(product) => product.productName == productName); 

if (!exist) {
print('입력값이 올바르지 않아요!'); 
return; } 

Product selectProduct = productList.firstWhere( 
(Product) => Product.productName == productName, 
);
 
 
  • 이를 통해 존재하지 않는 상품 입력 시 예외가 발생하지 않고 올바르게 처리됨.

2️⃣ 장바구니 초기화 기능에서 초기화 후 총 가격이 0으로 설정되지 않는 문제

🔹 문제

  • cartList.clear()를 호출하여 장바구니를 비웠지만, total 변수가 업데이트되지 않아 이전 금액이 유지됨.

✅ 해결 방법

  • cartList.clear() 후 total = 0;을 추가하여 총 가격을 초기화.
void clearCart() { 
if (cartList.isEmpty) {
print('이미 장바구니가 비어있습니다.'); 
} else { 
print('장바구니를 초기화합니다.'); 
cartList.clear(); // 리스트 비우기 
total = 0; // 총 가격 초기화 
} 
}
 
  • 이를 통해 장바구니 초기화 시 총 가격도 정상적으로 0으로 변경됨.

3️⃣ 상품 추가 시 개수를 입력하지 않거나 잘못된 값을 입력할 경우 오류 발생

🔹 문제

  • 개수를 입력할 때 숫자가 아닌 문자열을 입력하면 int.parse()에서 예외가 발생하여 프로그램이 종료됨.

✅ 해결 방법

  • try-catch 문을 사용하여 예외 발생 시 메시지를 출력하고 프로그램이 중단되지 않도록 수정.
try { 
int quantity = int.parse(
quantityInput ?? "0"); 
if (quantity <= 0) { 
print('0개보다 많은 개수의 상품만 담을 수 있어요!'); 
return; 
} 
cartList.add(CartItem(selectProduct, quantity)); 
total += selectProduct.price * quantity; print('장바구니에 담겼어요!'); 
} catch (e) { 
print('입력값이 올바르지 않아요!'); 
}
 
  • 이를 통해 잘못된 입력값을 방지하고, 프로그램이 정상적으로 동작하도록 개선됨.

'flutter앱개발과정' 카테고리의 다른 글