我该如何处理Process.run引发的异常

亚历克斯

根据可用的API和Apple Documentation Process.run方法,可能会引发异常。我想处理潜在的异常,但是找不到有关这些异常的任何文档。

如何找到相关文档并处理Process.run异常?

示例代码:

func runProcess(process: Process) {
    do {
        try process.run()
    } catch ??? {
        // I don't know what exceptions can I catch here
    } catch {
        // If I use catch-all case, then the `error` object contains only
        // `localizedDescription` which doesn't help in handling errors either
    }
}
他的脾气

它实际上是从桥接的[NSTask - (BOOL)launchAndReturnError:(out NSError **_Nullable)error],因此抛出的异常是NSError,因此您可以从

func runProcess(process: Process) {
    do {
        try process.run()
    } catch let error as NSError {
        // process NSError.code (domain, etc)
    } catch {
       // do anything else
    }
}

如果感兴趣的是特定代码,则可以通过处理CocoaError(那里有很多声明的常量)

/// Describes errors within the Cocoa error domain.
public struct CocoaError {
do {
    try process.run()
} catch CocoaError.fileNoSuchFile {
    print("Error: no such file exists")
}

以下是相关文档:

在Swift中处理可可错误

CocoaError常数

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章