微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

swift – 从没有抛出的继承函数中抛出异常

我正在尝试执行以下操作:

protocol X{
    func foo()
}
enum XError{
    case BAR
}
class Y:X{
    func foo(){
        throw XError.BAR
    }
}

我不能在协议中添加一个throws声明,它抱怨说

the error is not handled because the enclosing function is not
declared ‘throws’.

我怎样才能做到这一点?

解决方法

您需要在抛出的任何函数的签名中显式添加throw.

所以

func foo() throws {
    throw XError.BAR
}

这也适用于协议定义.

protocol X {
    func foo() throws
}

Swift中的错误应符合Error协议.

enum XError: Error {
    case BAR
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐