Как я могу обработать исключения, которые выдает Process.run - PullRequest
2 голосов
/ 10 февраля 2020

В соответствии с доступным API и Документация Apple 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
    }
}

1 Ответ

1 голос
/ 13 февраля 2020

Он на самом деле соединен с [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
    }
}

Если он заинтересован указанным c кодом, он может обрабатываться с помощью 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...