Swift error handling
Skill ComeOnOliver/skillshub/skills/HoangNguyen0403/agent-skills-standard/swift-error-handling
🧠The right skill, one API call. AI agent skills registry with token-efficient skill resolution. 5,000+ skills from 500+ top repos.
npx -y skills add ComeOnOliver/skillshub --skill swift-error-handlingAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its author says it does
Copied from the file, not written here
Standards for Throwing Functions, Result Type, and Never. Use when implementing Swift error throwing, Result<T,E>, or designing error hierarchies. (triggers: **/*.swift, throws, try, catch, Result, Error)
SKILL.md
1.7 KB, as published. Nobody here has run it
Swift Error Handling
Priority: P0
Implementation Guidelines
Throwing Functions
- Propagate Errors: Use
throwsfor recoverable errors andasync throwsfor modern concurrency. - Do-Catch: Handle errors close to source with specific catch clauses for each error type. Catch-all
catchshould be the last resort. - Error Types: Define custom errors as
enumconforming to Error (e.g.,enum NetworkError: Error { case connectionLost }) for user-facing descriptions. - Optional Try: Use
try?only for non-critical errors.
Result Type
- Async Alternatives: Use throws for synchronous code. Use Result for callbacks and non-async deferred error states.
- Transformations: Use
.map(),.flatMap()for functional composition. - Conversion: Use
.get()to convertResultto throwing for use intry-catch.
Never Type & Preconditions
- Fatalisms: Use
Neverreturn type only for unrecoverable crash scenarios or to indicate unreachable code. Never for expected errors. - Preconditions: Use
precondition(),assert(), andfatalError()for programmer errors. UseassertionFailure()for debug-only checks.
Anti-Patterns
- No try!: Use try? or do-catch.
- No try? without nil check: Handle or log.
- No Error(message): Use typed errors.