【发布时间】:2014-07-23 02:51:50
【问题描述】:
似乎 Swift 没有类似 C#/Java 的异常,而是使用断言。但是,这本书说在生产环境中,他们会立即使应用程序崩溃。没有办法解决吗?那么单元测试呢,我如何测试某个函数是否断言它获得了正确的输入值?
【问题讨论】:
-
这本书在哪里说,他们会在生产中崩溃?我读过它,因为它们不应该在生产中使用并且在开发中使您的应用崩溃。
-
建议只在开发过程中使用断言,因为它们会终止应用程序。在这种情况下不应该使用可选项(其中可选项包含一个值或 nil 显示该值缺失),然后在该值存在时继续使用标准防御性编程吗?
-
在 Swift 中,对于“发布”版本(使用例如
swift -O编译),断言似乎被忽略了。所以不幸的是,他们似乎不会在生产环境中立即使应用程序崩溃。 -
您可以按照本文中的说明为 Swift 添加 try-catch 支持:medium.com/@_willfalcon/adding-try-catch-to-swift-71ab27bcb5b8
标签: exception try-catch assert swift