可能是在使用试试时? (可选尝试)对于没有返回值的抛出函数的调用,只是忽略错误?
func throwingVoidFunction() throws { . . . } try? throwingVoidFunction()
我期望编译器不允许尝试?在返回类型为void的抛出函数前面,但编译器不会抱怨.
编译器没有理由抱怨.返回类型
的
的
func throwingVoidFunction() throws { ... }
是Void,因此是表达式的类型
try? throwingVoidFunction()
是可选< Void>,如果在评估表达式时抛出错误,则其值为nil(== Optional< Void> .none),
和可选< Void> .some()否则.
您可以忽略返回值或针对nil进行测试.一个
示例在An elegant way to ignore any errors thrown by a method中给出:
let fileURL = URL(fileURLWithPath: "/path/to/file") let fm = FileManager.default try? fm.removeItem(at: fileURL)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。