有什么方法可以在Swift中捕获断言吗?

Max*_*kov 19 assert exception try-catch swift

似乎Swift没有类似C#/ Java的异常,而是使用断言.但是,该书说,在生产环境中,它们会立即使应用程序崩溃.周围没有办法吗?单元测试怎么样,如何测试某个函数断言它获得了正确的输入值?

Gui*_*tro -1

从 Apple 书籍《Swift 编程语言》来看,错误似乎应该使用枚举来处理。

\n\n

这是书中的一个例子。

\n\n
enum ServerResponse {\n    case Result(String, String)\n    case Error(String)\n}\n\nlet success = ServerResponse.Result("6:00 am", "8:09 pm")\nlet failure = ServerResponse.Error("Out of cheese.")\n\nswitch success {\ncase let .Result(sunrise, sunset):\n    let serverResponse = "Sunrise is at \\(sunrise) and sunset is at \\(sunset)."\ncase let .Error(error):\n    let serverResponse = "Failure...  \\(error)"\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

来自:Apple Inc.\xe2\x80\x9cSwift 编程语言。\xe2\x80\x9d iBooks。https://itun.es/br/jEUH0.l

\n\n

对于意外错误,您应该使用lfalin指出的 NSException

\n

  • 没有任何地方说这是处理错误的好方法。它看起来更像是一个使用枚举的人为示例。 (11认同)