CodeGym
AI Academy
促销
CodeGym University
学习
课程
任务
调查 & 测验
游戏
帮助
日程
社区
Users
论坛
聊天
文章
成功故事
动态
评价
订阅
浅色主题

课时

  • 评论
  • 关于我们
开始
开始学习
立即开始学习
  • 我的进度
  • 课程
  • 任务地图
  • 课程
  • async throws 与 try await 的顺序

    Swift SELF
    等级 65,课时 0
    我们来分析,为什么 Swift 中的异步函数经常采用 async throws 这一契约,如何正确阅读这样的签名,为什么调用时必须严格遵循 try await 的顺序,它与 do/ catch 如何配合,以及何时适合使用简写形式 try? 和 try!。最后还会看一些典型错误,以及在教学用 LibraryCLI 中的一个小型集成。
    可用
  • 启动 async 代码: Task {} 和 async 入口

    Swift SELF
    等级 65,课时 1
    我们来分析为什么 await 只能出现在 async 上下文中,异步 CLI 程序的入口点是如何组织的( @main + static func main() async 和 main.swift 两种方案),以及什么时候真的需要通过 Task 把 sync 桥接到 async。还会实践 Task<Success, Failure> 句柄、通过 await task . value 等待,以及 CLI 中的典型错误清单。
    可用
  • Cancellation — Task.isCancelled

    Swift SELF
    等级 65,课时 2
    我们来讲 Swift Concurrency 中任务的协作式取消:为什么调用 task.cancel() 只是一个信号,如何通过
    Task.isCancelled
    做出正确响应(使用 return 进行柔性退出并返回部分结果),以及通过
    Task.checkCancellation()
    (在 CancellationError 的 async throws 代码中退出)。最后还会讲 CLI 中的实战集成和常见错误清单。
    可用
  • withTimeout(...) 的规范化超时 helper

    Swift SELF
    等级 65,课时 3
    我们来拆解如何为 Swift Concurrency 组装一个简单而可靠的超时机制:并行启动操作和基于 Task.sleep(nanoseconds:) 的计时器,在达到期限后调用 cancel(),并把 CancellationError 转换为领域错误 TimeoutError。我们会固定带有 @escaping 的规范签名,展示一个用于 CLI 的示例( LibraryCLI),并讨论这种方案的典型错误与限制。
    可用
  • URLSessionHTTPClient — 围绕 URLSession 的适配器

    Swift SELF
    等级 65,课时 4
    我们来拆解:为什么要在 URLSession 之上做一个薄薄的传输适配器:把请求发送与响应解释分离,把 URLResponse 转成 HTTPURLResponse,并统一把错误转换为 NetworkError。我们将通过 send(_:)( async/ throws)实现 HTTPClient 协议,并讨论一些常见错误:由于 as! 导致的崩溃、在传输层里检查 statusCode,以及在错误的层次上解码 JSON。
    可用
Learn
  • 注册
  • Java 课程
  • 任务帮助
  • 定价
  • Java 语法
社区
  • 用户
  • 文章
  • 论坛
  • 聊天
  • 成功故事
  • 动态
  • 联盟计划
Company
  • 关于我们
  • 联系方式
  • 评价
  • 媒体中心
  • CodeGym for EDU
  • 常见问题
  • 支持
CodeGymCodeGym 是一个从零开始学习 Java 编程的在线课程。该课程是初学者掌握 Java 的完美方式。它包含 1200+ 个带即时验证的任务,以及必要的 Java 基础理论。为了帮助你在学习中取得成功,我们实现了一系列激励功能:测验、编码项目、关于高效学习的内容,以及 Java 开发者职业相关内容。
关注我们
界面语言
English Deutsch Español हिन्दी Français Português Polski বাংলা
简体中文
मराठी தமிழ் Italiano Bahasa Indonesia 繁體中文 Nederlands 日本語 한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
“程序员是培养出来的,不是天生的” © 2026 CodeGym
MastercardVisa
“程序员是培养出来的,不是天生的” © 2026 CodeGym