Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

مدیریت خطاها

خطاها بخشی اجتناب‌ناپذیر از زندگی در دنیای نرم‌افزار هستند، و به همین دلیل، Rust ویژگی‌های متعددی برای مدیریت موقعیت‌هایی دارد که در آن‌ها مشکلی پیش می‌آید. در بسیاری از موارد، Rust شما را ملزم می‌کند که امکان وقوع یک خطا را به رسمیت بشناسید و پیش از آن‌که کد شما کامپایل شود، اقدامی انجام دهید. این الزام باعث می‌شود برنامه‌ی شما مقاوم‌تر باشد، زیرا تضمین می‌کند که خطاها را پیش از استقرار کد در محیط اجرایی (production) شناسایی کرده و به‌درستی مدیریت کرده‌اید.

Rust خطاها را به دو دسته اصلی تقسیم می‌کند: خطاهای قابل بازیابی و خطاهای غیرقابل بازیابی. برای یک خطای قابل بازیابی، مانند خطای فایل یافت نشد، احتمالاً می‌خواهیم مشکل را به کاربر گزارش دهیم و عملیات را دوباره انجام دهیم. خطاهای غیرقابل بازیابی همیشه نشانه‌های باگ‌ها هستند، مانند تلاش برای دسترسی به مکانی خارج از انتهای یک آرایه، بنابراین می‌خواهیم بلافاصله برنامه را متوقف کنیم.

بیشتر زبان‌ها بین این دو نوع خطا تفاوت قائل نمی‌شوند و هر دو را به یک شکل مدیریت می‌کنند، با استفاده از مکانیزم‌هایی مانند استثناها. Rust استثناها ندارد. در عوض، نوع Result<T, E> برای خطاهای قابل بازیابی و ماکروی panic! که اجرای برنامه را زمانی که با یک خطای غیرقابل بازیابی روبرو می‌شود متوقف می‌کند، ارائه می‌دهد. این فصل ابتدا به فراخوانی panic! می‌پردازد و سپس در مورد بازگرداندن مقادیر Result<T, E> صحبت می‌کند. علاوه بر این، ملاحظاتی را هنگام تصمیم‌گیری در مورد اینکه آیا سعی در بازیابی از یک خطا کنیم یا اجرای برنامه را متوقف کنیم، بررسی خواهیم کرد.