El código de Rust tiene diversas formas de representar errores, pero la librería estándar tiene un trait universal para describirlos: std::error::Error
.
Haciendo uso del puntero inteligente Box
, podemos usar el tipo Box<dyn std::error::Error>
como un tipo común para devolver errores porque nos permite propagar un error en el montículo e interactuar con él a un alto nivel sin tener que conocer ningún tipo específico.
Al principio de este Tour, aprendimos que main
puede devolver un error. Ahora podemos devolver un tipo capaz de describir casi cualquier tipo de error que pueda ocurrir en nuestro programa siempre que la estructura de datos de dicho error implemente el trait de error común de Rust (Error)
.
fn main() -> Result<(), Box<dyn std::error:Error>>