advertise laitec sharif univercity تبلیغات در سایت سورس کد تبلیغات در سایت سورس کد
دانلود مجموعه 70 پروژه مفید و کاربردی سی شارپ #C

دانلود مجموعه 70 پروژه مفید و کاربردی سی شارپ #C

9500 تومان
دانلود سورس هوش مصنوعی رنگ آمیزی گراف با ژنتیک در #C

دانلود سورس هوش مصنوعی رنگ آمیزی گراف با ژنتیک در #C

4800 تومان
دانلود پایان نامه وب سایت مهندسی پزشکی با ASP.net

دانلود پایان نامه وب سایت مهندسی پزشکی با ASP.net

12000 تومان
دانلود برنامه رنگ آمیزی گراف با الگوریتم عقبگرد در سی شارپ

دانلود برنامه رنگ آمیزی گراف با الگوریتم عقبگرد در سی شارپ

3000 تومان
دانلود سورس پروژه فروشگاه کیف با asp.net و sql express

دانلود سورس پروژه فروشگاه کیف با asp.net و sql express

3000 تومان

پردازش استثناها در زبان سی پلاس پلاس++C

استثنا در زبان سی پلاس پلاس هر چیزی غیر از حالت طبیعی است که در برنامه رخ میدهد. برنامه نویس میتواند استثنا را تشخیص دهد و تحت کنترل خود بگییرد. این عمل را پردازش استثنا میگویند
پردازش استثناها در زبان سی پلاس پلاس++C

پردازش استثناها در زبان سی پلاس پلاس++C

استثنا  در زبان سی پلاس پلاس هر چیزی غیر از حالت طبیعی است که در برنامه رخ میدهد. برنامه نویس میتواند استثنا را تشخیص دهد و تحت کنترل خود بگییرد. این عمل را پردازش استثنا میگویند.

قابلیت توسعه C++ میتواند انواع و تعداد خطاهایی را که اتفاق می افتند، افزایش دهد. برنامه نویس میتواند برنامه هایی بنویسد که قدرتمد، عاری از خطا و تحمل کننده عیبها باشند. سیستم هایی که با این ویژگی ها نوشته شدند، نتایج مثبتی را ارائه کرده اند. به کمک پردازش استثنا، هنگامی که خطایی در برنامه رخ دهد، برنامه بطور خودکار، روال کنترل خطا را فراخوانی میکند. کد کنترل استثنا به ماهیت و اندازه سیستم های نرم افزار بستگی دارد. در بعضی از سیستم ها، مثل سیستم های تجاری، باید کد کنترل خطای زیادی وجود داشته باشد.

ابزارهای زیادی برای کنترل خطا وجود دارد. معمولا کدهای کنترل خطا در سراسر کد سیستم پراکنده اند. خطاها در جاهایی که اتفاق می افتند، تحت کنترل قرار می گیرند. امتیاز این روش این است که برنامه نویسی که کد را میخواند کنترل خطا را نیز در نزدیکی آن مشاهده میکند و متوجه میشود که آیا کنترل خطای مناسبی پیاده سازی شده است یا خیر؟.

مشکل این روش این است که، کد سیستم با پردازش خطا در هم می آمیزد و از حالت یکنواختی خارج میشود. این کار موجب میشود تا خواندن برنامه جهت پی بردن به صحت کامل آن مشکل شود. علاوه بر این درک ونگهداری کد دشوار خواهد بود.

بعضی از استثناهای متداول عبارتنداز: عدم موفقیت عملگر new جهت تخصیص حافظه، خروج از حد آرایه، سرریز در محاسبات، تقسیم بر صفر، و پارامترهای نامعتبر تابع.

ویژگی های جدید  C++ در پردازش استثنا، برنامه نویس را قادر میسازد تا کد کنترل خطا را از متن برنامه جدا کند و به این ترتیب به خوانایی برنامه بیفزاید. با ویژگی های پردازش استثنا در ++C میتوان تمام استثناهای مربوط به یک نوع خاص یا تمام استثناهای انواع مرتبط را تشخیص داد. به این ترتیب احتمال اینکه برنامه نتواند خطایی را تشخیص دهد کاهش می یابد. پردازش استثنا موجب میشوند تا برنامه نویس خطاها را تشخیص دهد و آنها را تحت کنترل در بیاورد، تا موجب اشکالاتی در برنامه نشوند. اگر برنامه نویس نتواند خطاهای مهم را پردازش کندف برنامه خاتمه می یابد.

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

پردازش استثنا در وضعیتهایی مورد استفاده قرار میگیرد که اگر خطایی موجب استثنا شد، سیستم بتواند ترمیم شود. روند ترمیم را پردازش استثنا گویند. بخصوص در مواردی که برنامه نتواند ترمیم شودف ولی لازم است به طرز خوبی خاتمه یابد، پردازش استثنا ابزار مفیدی است. پردازش استثنا را میتوان وسیله دیگری برای انتقال کنترل از یک تابع یا خروج از یک بلوک دانست.

پردازش استثنا فقط باید برای پردازش حالتهای استثنایی به کار گرفته شود، هر چند میتوان از آن برای کنترل برنامه نیز استفاده کرد: برای پردازش قطعاتی از برنامه که مستقیما توسط آن استثنا پردازش نمیشوند. برای پردازش استثناهایی از قطعات نرم افزاری مثل توابع، کتابخانه ها و کلاس هایی که باید بطور گسترده مورد استفاده قرار گیرند و در پروژه های بزرگ برای کنترل پردازش خطا، میتوان از پردازش استثنا استفاده کرد.

 

سایر تکنیکهای کنترل خطا :

علاوه بر روشهایی که برای پردازش حالتهای استثنا گفته شد، تکنیک های دیگری را نیز میتوان به کار برد.

► استثناها را نادیده گرفت. این کار برای سیستم های همه منظوره، و یا سیستم هایی که برای اهداف خاصی مینویسند که اهمیت زیادی دارند، مفید نیست. ولی در سیستمهایی که برای خودتان مینویسید و از درجه اهمیت زیادی برخوردار نیستند، این روش خوب است.

► برنامه خاتمه پیدا کند. این کار از اجرای کامل برنامه جلوگیری میکند و نتایج نادرستی را تولید مینماید. در واقع، برای بسیاری از خطاها ، این روش مناسب است ولی برای برنامه های مهم این کار جالب نیست.

► نشانه هایی را برای خطاها در نظر گرفت. مشکل این روش این است که برنامه ممکن است این نشانه ها را در تمام نقاطی که خطاها میتوانند اتفاق افتند، کنترل نکنند.

► تست وضعیت خطا. صدور پیام و فراخوانی تابع exit جهت ارسال کد خطای مناسب به محیط برنامه.

 

اصول پردازش استثناها

پردازش استثناها در زبان ++C با سه کلمه کلیدی try، catch و throw انجام میشوند. دستورالعمل هایی که ممکن است تولید خطا کنند و موجب بروز استثنا شوند در بلوکی به نام try قرار میگیرند. پس از هر بلوک try یک یا چند بلوک catch قرار میگیرد. هر بلوک catch حاوی یک پردازشگر استثنا است، اگر استثنا با یکی از پارامترهای موجود در بلوک های catch مطابقت داشته باشد، کد مربوط به آن بلوک catch اجرا میشود. بناباین ممکن است بیش از یک بلوک catch برای هر بلوک tyr وجود داشته باشد و نوع استثنا مشخص میکند که کدام بلوک catch باید اجرا شود. اگر استثنایی به وجود نیاید و یا خطایی در بلوک try رخ ندهد، هیچ بلوک catch اجرا نمیشود.

اگر در بلوک try خطایی اتفاق افتد، استثنایی توسط دستور throw صادر میشود. این دستور بصورت ;throw  operand  به کار میرود. این دستور استثنایی را که در جلوی آن با operand (عملوند) مشخص شده است صادر میکند. استثنا باید در بلوک try یا تابعی که در داخل بلوک try اجرا میشود، صادر گردد. عملوند throw میتواند از هر نوعی باشد. اگر یک شی باشد آن را شیء استثنا مینامیم. به جای شی میتوان یک عبارت شرطی را ارسال کرد.

اگر استثنایی صادر شود که بلوک catch معادل آن پیدا نشود، در آن صورت ممکن است برنامه بطور ناقص خاتمه یابد. صادر کردن استثنایی که پاسخی به آن داده نمیشود موجب فراخوانی تابع کتابخانه ای ()terminate میشود. این تابع به نوبه خود تابع ()abort را فراخوانی میکند تا برنامه را متوقف نماید. وقتی استثنایی توسط دستور throw صادر میشود، کنترل از بلوک try خارج میشود و این بلوک خاتمه می یابد. 

 



0
نظرات

نظر خود را ارسال کنید



نام:
ایمیل:
دیدگاه:
captcha
کد امنیتی :


advertise
سایر تکنیکهای کنترل خطا در سی پلاس پلاسمفهوم اداره کردن استثنا در برنامه نویسی شیءگرا ++Cاداره کردن استثنا در زبان برنامه نویسی سی پلاس پلاسآموزش با پردازش استثنا در زبان ++Cپردازش استثنا در زبان برنامه نویسی ++C چیست?آموزش برنامه نویسی برای خطا در ++Cپردازش خطا در سی پلاس پلاس c++اصول پردازش خطاها در ++Cتبلیغات ارزان سایت آموزش برنامه نویسیتبلیغات مخصوص طراحان وب سایتتبلیغات در سایت برنامه نویسیتبلیغات اینترنتی برای برنامه نویساندر آغوش مینیمالیسممنوی همبرگر با سه خط افقی که روی یکدیگر قرار گرفته اند نشانه چیست؟ سوئیچ به یک ستون واحدتبدیل متن ساده به وبلاگ و سایت های پویا با React.jsکتابخانه sass برای استفاده آسان تر از آنکتابخانه سطح بالا برای اتوماتیک سازی اعمال مرورگر لیست برچسب ها
تمامی حقوق این سایت اعم از محتوی ، تصاویر ، قالب و ... متعلق به گروه مهندسی وب سایت سورس کد می باشد.
SourceCodes.ir ، افقی روشن برای برنامه نویسان ، از مبتدی تا حرفه ای

سفارش پروژه در سورس کد

پیشنهادات ویژه سورس کد

پکیج ویژه پروژه پایانی رشته کامپیوتر دانلود مجموعه 70 پروژه کاربردی سی شارپ وب سایت فروشگاه با php