트러블슈팅 (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앱개발과정' 카테고리의 다른 글
| dart문법 - 예외처리 (0) | 2025.03.17 | 
|---|---|
| dart심화 - 객체지향 프로그래밍 (0) | 2025.03.14 | 
| dart문법 함수형 프로그래밍 (0) | 2025.03.12 | 
| dart문법 심화 공부 기록 (0) | 2025.03.11 | 
| dart 기본문법 공부 기록 (0) | 2025.03.10 |