gpt4 book ai didi

swift - Swift中程序员错误导致的处理条件

转载 作者:行者123 更新时间:2023-11-28 06:47:09 25 4
gpt4 key购买 nike

Swift 提供了异常处理功能,在错误超出程序员的控制范围(丢失文件、断开连接等)的情况下非常有用。尽管我可以使用相同的机制来报告由程序员错误(索引越界、范围错误等)引起的情况,但我想知道这是否是使用异常的预期方式。

在 Objective-C 代码中,处理这些情况的常用方法是通过断言。另一方面,在 Objective-C 中有些不鼓励使用异常,因此这里可能没有一对一的替换。

同样,在 Java 中有已检查和未检查的异常,旨在为程序员的错误使用未检查的异常。

我的理解是 Swift 中的异常之间没有检查/未检查的区别。我想知道在 Swift 中使用异常或断言是否是报告程序员错误的正确方法,或者我是否应该使用其他机制?

最佳答案

尽管语法与 Java 的异常处理类似,但 Swift 的 do/catch 用于处理错误。也就是说,Swift 不支持异常处理。

参见 this question了解 Java 的异常处理和 Swift 的错误处理之间的一些差异。要添加到答案的另一个项目是 Swift 的错误处理不提供任何堆栈展开。

do/catch 用于处理可恢复的错误; assertprecondition 用于处理不可恢复的程序员错误。

See here用于讨论和引自 Dave Abrahams关于何时使用 assertprecondition

关于swift - Swift中程序员错误导致的处理条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35989875/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com