Как распечатать сведения об исключении "catch all" в Swift?
Я обновляю свой код для использования Swift, и мне интересно, как распечатать сведения об ошибке для исключения, которое соответствует предложению "catch all". Я немного изменил пример из этого Страница Руководства По Языку Swift чтобы проиллюстрировать мою точку зрения:
do {
try vend(itemNamed: "Candy Bar")
// Enjoy delicious snack
} catch VendingMachineError.InvalidSelection {
print("Invalid Selection.")
} catch VendingMachineError.OutOfStock {
print("Out of Stock.")
} catch VendingMachineError.InsufficientFunds(let amountRequired) {
print("Insufficient funds. Please insert an additional $(amountRequired).")
} catch {
// HOW DO I PRINT OUT INFORMATION ABOUT THE ERROR HERE?
}
Если я поймаю неожиданное исключение, мне нужно будет что-то записать о том, что его вызвало.
2 ответа:
Я только что понял это. Я заметил эту строку в документации Swift:
Если предложение catch не указывает шаблон, предложение будет соответствовать и привязывать любую ошибку к локальной константе с именем error
Итак, тогда я попробовал это:
do { try vend(itemNamed: "Candy Bar") ... } catch { print("Error info: \(error)") }
и это дало мне хорошее описание.
С Язык Программирования Swift:
если a
catch
предложение не указывает шаблон, предложение будет соответствовать и привязывать любую ошибку к локальной константе с именемerror
.то есть, есть неявное
let error
наcatch
статья:do { // … } catch { print("caught: \(error)") }
альтернативно, кажется, что
let constant_name
также является допустимым шаблоном, поэтому вы можете использовать его, чтобы переименовать постоянная ошибка (это может быть удобно, если имяerror
уже используется):do { // … } catch let myError { print("caught: \(myError)") }