如何在Swift中声明计算属性'throws'?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Swift中声明计算属性'throws'?相关的知识,希望对你有一定的参考价值。
class SomeClass {
var someProperty: Int {
throw Err("SNAFU")
}
}
对于上面这样的代码,swift二进制抱怨'错误未被处理,因为封闭函数未被声明为'throws'。
如何在上面声明'someProperty''抛出'?
class SomeClass {
var someProperty throws: Int {
}
}
和
class SomeClass {
var someProperty: throws Int {
}
}
和
class SomeClass {
var someProperty: Int throws {
}
}
似乎没有工作。
截至Swift 3:
你不能从计算属性中抛出。如果你想扔,你必须使用一个功能。 Declarations section of the Language Reference末尾的The Swift Programming Language部分仅列出throws
(和rethrows
)作为函数和初始化器声明的关键字。
虽然从Swift的计算属性中找不到throw
是不可能的,但我发现Chris Lattner自己在one of Apple Developer Forums threads上解决了同样的问题:
我们同意你应该能够在下标和计算属性中将getter和setter标记为“throws”,但还没有到达那里。我们可能会在某个时候支持这一点,但目前尚不清楚它是否能及时赶上Swift 2。
以上是关于如何在Swift中声明计算属性'throws'?的主要内容,如果未能解决你的问题,请参考以下文章
swift 报错 Call can throw, but it is not marked with 'try' and the error is not handled
如何使用 swift 在 UIResponder 子类中将属性重新声明为读写?
java异常处理 throw RuntimeException时不需要同时方法中声明抛出throws 异常等待调用者catch进行捕获 子父类异常问题