swift - 是否可以在不声明的情况下在 Swift 中抛出 "RuntimeException"?

标签 swift exception exception-handling runtimeexception

我想从某个“深层”函数中抛出异常,因此它会冒泡到另一个函数,我想在其中捕获它。

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/

相关文章:

java - 从命令行进行 Junit 测试 无可运行方法异常

c++ - 如何避免在从 .so 调用函数抛出异常时崩溃

Xcode OS X Storyboard : How do I get a reference to the top level "window content" view controller?

ios - 快速连接到sql server

ios - iOS Swift 中的异常管理问题

.NET 4 加载不同于 .NET 3.5 的程序集

java - 如果将非法参数传递给 API 方法,何时抛出异常?

ios - 应用程序安装时运行方法

html - 在 OS X 中构建和显示 html 文件

python - 如何在 python 中缩短 try-except-KeyError?