我想从某个“深层”函数中抛出异常,因此它会冒泡到另一个函数,我想在其中捕获它。
f1
调用 f2
调用 f3
调用 ... fN
这可能会引发错误
我想从 f1
捕获错误。
我读到在 Swift 中我必须使用 throws
声明所有方法,并且还使用 try
调用它们。
但这很烦人:
enum MyErrorType : ErrorType {
case SomeError
}
func f1() {
do {
try f2()
} catch {
print("recovered")
}
}
func f2() throws {
try f3()
}
func f3() throws {
try f4()
}
...
func fN() throws {
if (someCondition) {
throw MyErrorType.SomeError
}
}
在 Java 中有没有类似 RuntimeException
的概念,其中 throws
不会一直泄漏到调用链上?
最佳答案
是的,这是可能的!
使用:fatalError("your message here")
抛出运行时异常
关于swift - 是否可以在不声明的情况下在 Swift 中抛出 "RuntimeException"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33977969/