知识卡片
错误处理与可选类型的分工边界
内容
可选类型只回答”有没有值”这一个二元问题,失败原因被丢弃;错误处理(throws/try/do-catch)则允许携带具体的失败原因,并能把这个原因沿调用链向上传递给更合适处理它的地方决定如何应对。二者不是互斥的两套方案,而是按失败信息的丰富程度分工:只关心成功与否、不关心为什么失败时用可选类型足够;需要区分失败原因、按原因做不同处理时才需要错误处理机制。
参考来源
《Swift全解析:新式iOS实战开发》第2章《Swift语法基础》
知识卡片
可选类型只回答”有没有值”这一个二元问题,失败原因被丢弃;错误处理(throws/try/do-catch)则允许携带具体的失败原因,并能把这个原因沿调用链向上传递给更合适处理它的地方决定如何应对。二者不是互斥的两套方案,而是按失败信息的丰富程度分工:只关心成功与否、不关心为什么失败时用可选类型足够;需要区分失败原因、按原因做不同处理时才需要错误处理机制。