似乎 Swift 2.0 已经从传统的 ObjC(返回 NSError)和 Swift 1.X(成功/失败选项)运行时错误处理的约定变成了与 Java/C#/C++/等语言中的异常处理非常相似的东西.
Apple 传统上强调使用NSError
而不是抛出NSException for runtime errors
(与程序员错误相比),因为NSException
堆栈展开可能会导致默认 ObjC 编译器设置的内存泄漏。
然而,现在他们设计了一些看起来非常非常类似于传统例外的东西。我的问题是:
除了命名法(错误与异常)和语法(do-catch,而不是 try-catch,在方法调用之前使用 try 等)之外,Swift 2.0 错误处理和传统异常处理之间是否有任何真正的区别。