Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗rsSpErDp 52 of 288 menu
◀ ▶

Текст своей ошибки в Rust

Человеку удобнее читать сбой как строку, а не как набор полей структуры. Для этого у типа выполняют трейт печати: в одном месте решают, какие поля попадут в сообщение и в каком порядке.

Поле можно вывести через макрос записи в форматтер, как в обычном выводе на экран. Тогда при печати исхода сбоя или самой ошибки текст будет один и тот же, без дублирования строк по файлу.

Оформим тип с полем пути и коротким текстом:

#[derive(Debug)] struct PathError { path: String, } impl std::fmt::Display for PathError { fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { write!(f, "bad path {}", self.path) } } fn main() { let err = PathError { path: String::from("data.txt"), }; println!("{}", err); }

Дан следующий код:

struct CodeError { code: i32, }

Добавьте трейт печати, который выводит слово "code", пробел и число из поля. Соберите значение, напечатайте его через println! с {}.

Дан следующий код:

struct NameError { name: String, }

Напишите текст "unknown name", затем пробел и значение поля name. Выведите ошибку одной строкой в main.

Дан следующий код:

struct LimitError { max: u32, }

Сделайте сообщение "limit", двоеточие и число max. Проверьте вывод в полной программе с fn main.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить