Leo*_*ues 4 exception-handling swift
我正在尝试执行以下操作:
protocol X{
func foo()
}
enum XError{
case BAR
}
class Y:X{
func foo(){
throw XError.BAR
}
}
Run Code Online (Sandbox Code Playgroud)
我不能在协议中添加一个throws声明,它抱怨说
由于封闭函数未声明为'throws',因此未处理错误.
我怎样才能做到这一点?
Hug*_*ius 12
您需要在抛出的任何函数的签名中显式添加throw.
所以
func foo() throws {
throw XError.BAR
}
Run Code Online (Sandbox Code Playgroud)
这也适用于协议定义.
protocol X {
func foo() throws
}
Run Code Online (Sandbox Code Playgroud)
Swift中的错误应该符合Error协议.
enum XError: Error {
case BAR
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3106 次 |
| 最近记录: |