Код Rust може мати безліч представлень помилок, але стандартна бібліотека має
універсальну конструкцію std::error::Error
для опису помилок.
Використовуючи розумні покажчик Box
, ми можемо використовувати тип Box<dyn std::error::Error>
як загальний тип для повернення помилок, оскільки він дозволяє нам
поширювати помилку у купі та взаємодіяти з нею на високому рівні без необхідності знати конкретний тип.
На початку туру по Rust ми дізналися, що main
може повертати помилку. Тепер ми можемо повертати
тип, здатний описати майже будь-який тип помилки, що може виникнути у у нашій програмі,
якщо структура даних помилки реалізує загальну для Rust властивість Error
.
fn main() -> Result<(), Box<dyn std::error:Error>>