Python, TypeScript, Rust, Go 에서 예외, Result 타입, 재시도 로직, 서킷 브레이커를 포함한 에러 처리 패턴을 마스터하여 더욱 회복력 있는 애플리케이션을 구축하세요.
下载技能 ZIP
在 Claude 中上传
前往 设置 → 功能 → 技能 → 上传技能
开启并开始使用
测试它
正在使用“error-handling-patterns”。 외부 API 를 호출할 때 에러를 어떻게 처리해야 하나요?
预期结果:
외부 API 호출의 경우 다중 레이어의 에러 처리를 구현하세요: (1) 다양한 장애 타입을 위한 커스텀 예외 계층, (2) 일시적 에러를 위한 지수 백오프가 포함된 재시도, (3) 연쇄 장애 방지를 위한 서킷 브레이커, (4) 폴백 데이터를 통한 우아한 성능 저하. 예시 접근 방식: 커스텀 예외 생성 (NetworkError, TimeoutError, RateLimitError), 3 번 시도와 지수 백오프가 포함된 재시도 데코레이터로 API 호출 래핑, 장애율을 추적하기 위한 서킷 브레이커 사용, API 사용 불가 시 캐시된 폴백 제공.
正在使用“error-handling-patterns”。 예외 대신 Result 타입을 언제 사용해야 하나요?
预期结果:
호출자가 성공과 실패 케이스를 모두 명시적으로 처리해야 하는 예상된 실패 (유효성 검사 에러, 찾을 수 없음 에러, 비즈니스 로직 에러) 에는 Result 타입을 사용하세요. 진짜 예외적인 상황 (null 포인터, 메모리 부족, 예상치 못한 런타임 에러) 에는 예외를 사용하세요. Result 타입은 타입 시스템에서 에러 처리를 명시적으로 만들어 호출자가 실패 케이스를 고려하도록 강제합니다. TypeScript 에서 Result<T, E> = { ok: true, value: T } | { ok: false, error: E } 입니다. Rust 에서 ? 연산자와 Result<T, E> 타입은 내장 지원을 제공합니다. 이 접근 방식은 코드 가독성을 향상시키고 예상치 못한 런타임 에러를 줄입니다.
安全审计
安全This skill is a documentation and educational resource about error handling patterns. The static scanner flagged 49 potential issues, but after evaluation all findings are FALSE POSITIVES. The detected patterns (backtick syntax examples, HTTP library examples, error categories) are educational code snippets in markdown documentation, not executable malicious code. No security concerns identified.
质量评分
你能构建什么
애플리케이션 신뢰성 개선
적절한 예외 계층과 의미 있는 에러 메시지로 새 기능이나 기존 기능에 견고한 에러 처리를 추가합니다.
내결함성 시스템 구축
분산 시스템 및 마이크로서비스를 위해 재시도 로직, 서킷 브레이커, 우아한 성능 저하를 구현합니다.
크로스 언어 패턴 학습
각 상황에 맞는 최선의 접근 방식을 선택하기 위해 Python, TypeScript, Rust, Go 전반의 에러 처리 방식을 이해합니다.
试试这些提示
데이터베이스에서 사용자 데이터를 가져오는 함수에 적절한 에러 처리를 구현하고 싶습니다. 커스텀 예외 클래스를 생성하고 다양한 에러 시나리오를 적절히 처리하려고 합니다.
JSON 데이터 파싱을 위해 TypeScript 에서 Result 타입 패턴을 구현하는 방법을 보여주세요. 적절한 에러 타입과 체이닝 가능한 에러 처리를 포함하세요.
네트워크 호출을 위해 지수 백오프가 포함된 재시도 로직을 구현하는 Python 데코레이터를 생성하세요. 다양한 예외 타입을 처리하고 구성 가능한 시도 횟수를 포함하세요.
외부 API 호출 시 연쇄 장애를 방지하기 위해 Python 에서 서킷 브레이커 패턴을 구현하세요. closed, open, half-open 상태를 포함하세요.
最佳实践
- 입력을 일찍 검증하고 컨텍스트가 포함된 의미 있는 에러 메시지를 제공하여 빠르게 실패
- 스택 트레이스, 타임스탬프, 관련 메타데이터를 포함한 에러 컨텍스트 보존
- 의미 있게 응답할 수 있는 적절한 수준에서 에러 처리
- 적절하게 에러 로깅 - 예상된 유효성 검사 실패가 아닌 예상치 못한 에러 로깅
避免
- 버그를 숨기는 제네릭 Exception 핸들러로 너무 광범위하게 캐치
- 로깅이나 처리 없이 에러를 조용히 삼키는 빈 catch 블록
- 적절한 예외나 Result 타입 대신 에러 코드 반환
- 프롬리스 거절을 적절히 처리하지 않아 비동기 에러 무시