یک تابع C++ بنویسید که مقدار یک سنسور را از یک فایل شبیهسازیشده بخواند و در صورت نبود فایل، دادهٔ نامعتبر یا خارج از بازهٔ قابل قبول با استفاده از استثناهای موجود در (مثل std::runtime_error یا std::invalid_argument) خطا را پرتاب کند و در تابع main این استثناها را با try/catch مدیریت و پیام مناسبی چاپ کند.
4.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:36 0.0
در حل این مسئله از هدرهای برای خواندن فایل، برای استفاده از std::runtime_error/std::invalid_argument و برای چاپ استفاده کنید؛ هنگام خواندن مقدار را پارس و اعتبارسنجی کنید (مثلاً محدودهٔ مجاز را چک کنید) و در صورت خطا با throw یک استثنای مناسب بسازید. نکات: استثناها را بهصورت مقدار پرتاب و با ارجاع ثابت (const&) بگیرید، برای خطاهای اختصاصی میتوانید از کلاس مشتقشده از std::runtime_error استفاده کنید و در سیستمهای تعبیهشده ترجیحاً از مدیریت استثناها برای گزارش خطا بهجای کرش برنامه بهره ببرید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
نکتهٔ کلیدی این کار استفاده از std::ifstream برای خواندن مقدار از فایل شبیهسازیشده و بررسی وجود فایل قبل از پارس است. اعتبارسنجی دقیق مقدار خواندهشده (مثلاً اینکه در بازهٔ مجاز قرار میگیرد) را انجام بدهید و در صورت نامعتبر بودن با throw یک استثنای مناسب مانند std::invalid_argument یا یک کلاس مشتقشده از std::runtime_error پرتاب کنید. استفاده از استثناها بهعنوان مقدار پرتاب و با ارجاع ثابت (const&) به جلوگیری از کپی کمک میکند و برای خطاهای اختصاصی میتوانید کلاسهای مخصوص بسازید. در تابع main با بلوکهای try/catch مناسب این استثناها را مدیریت کنید و پیام کاربرپسند چاپ نمایید تا در سیستمهای تعبیهشده کرش نکند و خطای گزارش شود.
گزارش