Оператор спроб
Помилки виконання, такі як відмова у з’єднанні або не знайдено файл, обробляються за допомогою типу Result
, але зіставлення цього типу для кожного виклику може бути громіздким. Оператор спроби ?
використовується для повернення помилок користувачеві. Він дозволяє перетворити звичайний оператор
match some_expression {
Ok(value) => value,
Err(err) => return Err(err),
}
у набагато простіше
some_expression?
Ми можемо використовувати це, щоб спростити наш код обробки помилок:
Speaker Notes
This slide should take about 5 minutes.
Спростіть функцію read_username
до використання ?
.
Ключові моменти:
- Змінна
username
може мати значенняOk(string)
абоErr(error)
. - Використовуйте виклик
fs::write
, щоб перевірити різні сценарії: відсутність файлу, порожній файл, файл з іменем користувача. - Зверніть увагу, що
main
може повертатиResult<(), E>
, якщо вона реалізуєstd::process:Termination
. На практиці це означає, щоE
реалізуєDebug
. Виконуваний файл виведе варіантErr
і поверне ненульовий статус виходу у разі помилки.