تور راست فهرست مطالب

Main شکست‌پذیر، دوباره بررسی می‌کنیم

کد راست ممکنه نمایش‌های زیادی برای خطاها داشته باشه، ولی کتابخونه‌ی استاندارد یه trait جهانی به اسم std::error::Error برای توصیف خطاها داره.

با استفاده از یه smart pointer به اسم Box، می‌تونیم از نوع Box<dyn std::error::Error>‎ به‌عنوان یه نوع مشترک برای برگردوندن خطاها استفاده کنیم، چون بهمون اجازه می‌ده یه خطا رو روی هیپ منتشر کنیم و باهاش توی سطح بالا تعامل داشته باشیم، بدون اینکه لازم باشه یه نوع خاص رو بشناسیم.

اوایل تور راست یاد گرفتیم که main می‌تونه یه خطا برگردونه. الان می‌تونیم یه نوع برگردونیم که تقریباً هر نوع خطایی که ممکنه توی برنامه‌مون اتفاق بیفته رو توصیف کنه، به شرطی که ساختار داده‌ی خطا، trait مشترک Error راست رو پیاده‌سازی کنه.

fn main() -> Result<(), Box<dyn std::error::Error>>