개발자 능력치 물약/C++
Fall Back, Fall through
하시무
2025. 4. 21. 14:33
🧩 1. Fallback (폴백)
✅ 뜻
기본 방식이 실패하면 다른 대체 방식으로 넘어가는 것
✅ 주요 맥락
- 파일 파싱 실패 시 다른 포맷 시도
- 서버 요청 실패 시 다른 서버나 캐시를 사용
- 폰트가 없으면 대체 폰트를 보여줌
if (!LoadNewFormat(filePath)) {
LoadOldFormat(filePath); // 폴백: 새로운 방식 실패 → 옛날 방식으로 대체
}
🧩 2. Fallthrough (폴스루)
✅ 뜻
switch 문에서 break 없이 다음 case로 넘어가는 것
✅ 주요 맥락
- switch-case에서 쓰임
- 조건이 맞는 case 블록 실행 후, 명시적으로 중단하지 않으면 다음 case도 계속 실행됨
switch (command) {
case 1:
DoBasicAction();
// break; ← break 없으면 fallthrough 발생
case 2:
DoExtraAction(); // case 1도 실행되며 case 2도 실행됨!
break;
}
💡 C++17 이후
C++에서는 fallthrough가 헷갈릴 수 있어서, 의도적일 경우엔 [ [ fallthrough ] ]; 를 명시해주는 걸 권장
switch (n) {
case 1:
DoSomething();
[[fallthrough]]; // 명시적으로 fallthrough 한다는 의미
case 2:
DoAnotherThing();
break;
}