Limbajul Rust are o mulțime de reprezentări ale erorilor, dar biblioteca standard are
un trait universal std::error::Error
pentru descrierea erorilor.
Utilizând pointerul inteligent Box
, putem folosi tipul Box<dyn std::error::Error>
pentru returnarea erorilor, deoarece ne permite să propagăm
o eroare pe heap și să interacționăm cu ea la un nivel înalt, fără a cunoaște un tip anume.
Mai devreme în Turul limbajului Rust am învățat că funcția main
poate returna o eroare. Acum putem returna un tip
ce este capabil să descrie aproape orice fel de eroare pe care o putem întâlni într-un program
atât timp cât structura de date a erorii implementează trait-ul Error
.
fn main() -> Result<(), Box<dyn std::error:Error>>