Возможно ли обрабатывать сразу несколько разных ошибок вместо отдельных в Rust без использования дополнительных функций ?Вкратце: что такое Rust, эквивалентный выражению try-catch?
Подобная функция ( Первоклассная обработка ошибок с ?
и catch
) была предложена еще в2016, но я не могу сказать, что из этого получилось и как может выглядеть решение 2019 года для такой проблемы.
Например, сделать что-то вроде этого:
try {
do_step_1()?;
do_step_2()?;
do_step_3()?;
// etc
} catch {
alert_user("Failed to perform necessary steps");
}
Вместоиз:
match do_steps() {
Ok(_) => (),
_ => alert_user("Failed to perform necessary steps")
}
// Additional function:
fn do_steps() -> Result<(), Error>{
do_step_1()?;
do_step_2()?;
do_step_3()?;
// etc
Ok(())
}
В моей программе есть функция, которая проверяет различные места в реестре на различные значения данных и возвращает некоторые совокупные данные.Необходимо будет использовать многие из этих операторов try-cache вместе с try-catch внутри других try-catch внутри циклов.