انواع خطاهای برنامه نویسی

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

 

تألیف: حمید وثیق زاده انصاری
منبع:راسخون



 

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

 

انواع خطاهای برنامه نویسی
 
بیل وان: "انسان جایز الخطا است، برای موارد نا درست نیاز به یک کامپیوتر است".
میچ رتکلیف: "کامپیوتر به شما اجازه می دهد که نسبت به هر نوع اختراع دیگری در تاریخ بشریت، خطاهای سریع‌تری انجام دهید - به استثنای هفت تیر و می".
خطاهای برنامه ‌نویسی که در زبان تخصصی محاسبات تحت عنوان "اشکالات" شناخته‌ شده، برای هر توسعه ‌دهنده‌ی نرم‌ افزار یک مصیبت است. چون ماشین‌ها بیش از پیش در سیستم‌های جا سازی شده یا کامپیوترهایی که عمل کرد آن‌ها را کنترل می‌کنند، به صورت خودکار استفاده می‌شوند، هر خطای برنامه‌نویسی می‌تواند نتایج شدیدی داشته باشد. مواردی از سقوط سفینه‌های فضایی و هوا پیماها به دلیل اشکالات نرم‌ افزاری در تجهیزات محاسباتی جاسازی شده، وجود دارد. یک شکاف در برنامه ‌نویسی سیستم عامل می‌تواند امکان ورود هکرهایی را فراهم کند که می‌توانند به طرز آسیب‌ پذیری سوء استفاده نموده و امنیت کامپیوتر را در معرض خطر قرار دهند. بنا بر این همان طور که به طور روز افزون به کامپیوتر وابسته می‌شویم باید نسبت به خطاها نیز جدی‌تر باشیم.

انواع اساسی خطاهای برنامه نویسی

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

انواع خطاهای برنامه نویسی

توصیفی

خطای منطقی

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

خطای نحوی

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

خطای پردازش

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

خطای زمان اجرا

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

خطای محاسباتی

بسیاری از برنامه‌ها از متغیرهای عددی استفاده می‌کنند و الگوریتم ممکن است شامل چندین محاسبه ریاضی باشد. خطاهای محاسباتی زمانی بروز می‌کنند که کامپیوتر نمی‌تواند مشکلاتی مانند "تقسیم بر صفر" که منجر‌به نتیجه نا متناهی می‌شود را مدیریت کند. این نیز یک خطای منطقی است که تنها با تغییر الگوریتم می‌تواند تصحیح شود.

خطاهای منبع

وقتی مقدار یک متغیر بیش از حد اکثر مجاز آن است، ممکن است منجربه خطای منبع شود. بافر سر ریز، استفاده از متغیر مقداردهی نشده، نقص‌های دست رسی و سر ریزهای پشته‌ای، نمونه‌هایی از برخی خطاهای رایج است.

خطای واسط

این خطاها ممکن است به دلیل عدم تطابق یک برنامه نرم افزاری با رابط سخت ‌افزاری یا رابط برنامه ‌نویسی کار بردی به وجود می‌آید. در کار بردهای شبکه، خطای واسط ممکن است ناشی از استفاده نا درست پروتکل شبکه باشد.
مرحله تست و اشکال زدایی، یک بخش ضروری از چرخه‌ی توسعه نرم ‌افزار است که می‌تواند قبل از استقرار کامل برنامه نرم ‌افزار کمک کند تا مانع رشد این خطاها در مرحله بروز اولیه‌شان شود. از بسیاری از خطاها می‌توان با پیش ‌برنامه ‌ریزی و مراقبت در مرحله برنامه ‌نویسی، اجتناب کرد. از طریق تمرین و ایجاد نظم و پس از مراحل سخت اشکال‌ زدایی، می‌توان بسیاری از خطاها را در مرحله توسعه نرم ‌افزار اصلاح کرد. اشتباه کردن بخشی از یاد گیری است و به طور کامل هم قابل اجتناب نیست، هر چند پیشنهاد می‌کنیم که بر اشتباهات جدید تمرکز کرده و از تکرار آن چه قبلاً انجام داده‌اید بپرهیزید!

 

 

نظرات کاربران
ارسال نظر
با تشکر، نظر شما پس از بررسی و تایید در سایت قرار خواهد گرفت.
متاسفانه در برقراری ارتباط خطایی رخ داده. لطفاً دوباره تلاش کنید.
مقالات مرتبط
موارد بیشتر برای شما
سیمیاری: مطالبه مردم برخورد قاطع امنیتی - قضایی با مداخلات فرانسوی‌هاست
play_arrow
سیمیاری: مطالبه مردم برخورد قاطع امنیتی - قضایی با مداخلات فرانسوی‌هاست
بازتاب اقتدار پدافندی
play_arrow
بازتاب اقتدار پدافندی
آزادی از نوع آمریکایی را در باندهای قدرت صهیونی بیابید
play_arrow
آزادی از نوع آمریکایی را در باندهای قدرت صهیونی بیابید
کاخ سفید: ترامپ را جدی نگیرید!
play_arrow
کاخ سفید: ترامپ را جدی نگیرید!
احترام نظامی ملی‌پوشان بسکتبال هنگام پخش سرود ایران
play_arrow
احترام نظامی ملی‌پوشان بسکتبال هنگام پخش سرود ایران
لحظه پرالتهاب شروع تیراندازی مرگبار در ایالت کنتاکی با ۶ کشته و زخمی
play_arrow
لحظه پرالتهاب شروع تیراندازی مرگبار در ایالت کنتاکی با ۶ کشته و زخمی
حقیقت تلخ برای واشینگتن؛ تشر تاکر کارلسون به رسانه‌های دروغین
play_arrow
حقیقت تلخ برای واشینگتن؛ تشر تاکر کارلسون به رسانه‌های دروغین
دومین طرح پیشنهادی دولت برای بنزین چه مزایا و معایبی دارد؟
play_arrow
دومین طرح پیشنهادی دولت برای بنزین چه مزایا و معایبی دارد؟
تغییر چهره بازیگران بچه‌های مدرسه همت بعد از ۲۹ سال
play_arrow
تغییر چهره بازیگران بچه‌های مدرسه همت بعد از ۲۹ سال
نیکولا ترز: شکست آمریکا در ایران می‌تواند به یک پرونده عبرت‌آموز در تاریخ روابط بین‌الملل تبدیل شود
play_arrow
نیکولا ترز: شکست آمریکا در ایران می‌تواند به یک پرونده عبرت‌آموز در تاریخ روابط بین‌الملل تبدیل شود
همکاری دو ربات انسان‌نما برای طناب‌زنی
play_arrow
همکاری دو ربات انسان‌نما برای طناب‌زنی
نظامی آمریکایی: ترامپ منفورترین چهره روی زمین!
play_arrow
نظامی آمریکایی: ترامپ منفورترین چهره روی زمین!
وزیرخارجه نروژ: جنگ با ایران نه هوشمندانه بود نه مطابق قوانین بین‌المللی
play_arrow
وزیرخارجه نروژ: جنگ با ایران نه هوشمندانه بود نه مطابق قوانین بین‌المللی
یورش نظامیان اشغالگر به تالار عروسی در قدس اشغالی
play_arrow
یورش نظامیان اشغالگر به تالار عروسی در قدس اشغالی
دربدری و بدبختی به روایت ‌اشکان خطیبی
play_arrow
دربدری و بدبختی به روایت ‌اشکان خطیبی