Какие ошибки выдает func в Swift?

Я вижу, что некоторые методы выдают ошибки в документации Apple. Но я не могу найти информацию о том, что он бросает.

Как это методы ниже. Это в классе FileManager.

func moveItem(at srcURL: URL, to dstURL: URL) throws

Я хочу знать, какие ошибки он выдает. Где я могу получить соответствующую информацию?

1 ответ

В отличие от Java, где throws для объявления требуется тип, в Swift вы не будете знать, какой тип Error будет брошен. Единственное, что вы знаете, это то, что объект соответствует Error-Протокол.

Если вы знаете, что функция выбрасывает цертин Error (потому что это хорошо документировано), вам нужно будет правильно наложить пойманный объект.

Пример:

do {
    try moveItem(from: someUrl, to: otherUrl)
} catch {
    //there will automatically be a local variable called "error" in this block
    // let's assume, the function throws a MoveItemError (such information should be in the documentation)
    if error is MoveItemError {
        let moveError = error as! MoveItemError //since you've already checked that error is an MoveItemError, you can force-cast
    } else {
        //some other error. Without casting it, you can only use the properties and functions declared in the "Error"-protocol
    }
}
Другие вопросы по тегам