Code Rust có thể có rất nhiều sự biểu diễn của lỗi, nhưng thư viện chuẩn có một trait chung std::error::Error
để mô tả lỗi.
Bằng cách sử dụng con trỏ thông minh Box
, chúng ta có thể sử dụng kiểu Box<dyn std::error::Error>
như một kiểu phổ biến để trả về lỗi vì nó cho phép chúng ta tạo ra một lỗi trên heap và tương tác với nó tại một cấp độ cao mà không cần phải biết một loại cụ thể.
Trước đây trong Tour of Rust, chúng ta đã biết rằng main
có thể trả về một lỗi. Bây giờ chúng ta có thể trả về một kiểu có khả năng mô tả hầu hết mọi loại lỗi có thể xảy ra trong chương trình của bạn, miễn là cấu trúc dữ liệu của lỗi thực hiện trait chung Error
của Rust.
fn main() -> Result<(), Box<dyn std::error:Error>>