13. 에러 처리¶
실패는 ZLinkFrameworkException(systems.zlink.framework.errors)으로 보고된다.
예외 모델¶
ZLinkFrameworkException은 kind enum이나 isRetriable을 노출하지 않는다(RuntimeException
기반, 메시지·예외 타입으로 구분한다).
| 상황 | 보고 |
|---|---|
| 구성/요청 검증 실패(base url, path, single body source, proxy scheme, 0 timeout 등) | ZLinkFrameworkException |
status ≥ 400 (await/fetch) |
ZLinkFrameworkException |
| redirect 한도 초과 | ZLinkFrameworkException |
| 응답 JSON 디코드 실패 | ZLinkFrameworkException(원인 cause 포함) |
| 압축 본문 손상 | ZLinkFrameworkException |
| 압축 decoded 크기 초과 / 본문 크기 초과 | ZLinkFrameworkException |
| transport 실패(연결 오류, timeout) | ZLinkFrameworkException(원인은 IOException) |
retriable¶
retry 판단은 내부적으로 IOException(전송 오류·timeout) 여부로 한다. status 코드
실패(4xx/5xx)는 재시도하지 않는다. streaming 요청은 retry에서 제외된다
(10장). retry가 설정돼 있으면 retriable 실패가
재시도된다.
예외 경로¶
suspend 호출은 try/catch로 직접 잡는다.