我正在尝试执行以下操作:
protocol X{
func foo()
}
enum XError{
case BAR
}
class Y:X{
func foo(){
throw XError.BAR
}
}
我不能在协议中添加一个throws声明,它抱怨
未处理错误,因为封闭功能不是 宣布'抛出'。
我怎样才能做到这一点?
答案 0 :(得分:10)
您需要在抛出任何函数的签名中显式添加throw。
所以
func foo() throws {
throw XError.BAR
}
这也适用于协议定义。
protocol X {
func foo() throws
}
Swift中的错误应符合Error
协议。
enum XError: Error {
case BAR
}