انواع خطاها در برنامه‌نویسی 🤷‍♂️

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

خطاها انواع زیادی دارند اما می‌شه اونها رو به سه دسته کلی تقسیم کنیم.
1. خطاهای نگارشی (syntax error)
2. خطاهای زمان اجرا (runtime error)
3. خطاهای معنایی (semantic error)

طراحی شده توسط هوش مصنوعی copilot
طراحی شده توسط هوش مصنوعی copilot

خطاهای نگارشی (Syntax Error)

اگر روند اجرای دستورات برنامه نویسی را در کامپیوترها مرور کنیم، خواهیم دانست که پس از پایان روند نوشتن کدهای برنامه، این کدها توسط مترجم‌ها (کامپایلر یا مفسر) می‌بایست که به زبان ماشین ترجمه شده و برای اجرا باید به cpu ارسال گردند.

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

طراحی شده توسط هوش مصنوعی copilot
طراحی شده توسط هوش مصنوعی copilot


خطاهای زمان اجرا (Runtime Error)

همانطور که در بالا اعلام گردید، بعد از ترجمه دستورات و کدها به زبان ماشین یا همان ترکیبات ساخته شده از 0,1، به cpu ارسال می‌شوند تا آنها اجرا شوند.

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

طراحی شده توسط هوش مصنوعی copilot
طراحی شده توسط هوش مصنوعی copilot

خطاهای معنایی (Semantic Error)

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

فرض کنید برنامه ای که شما نوشته‌اید قرار بر این بوده است که بتواند دو عدد مانند ۳ و ۵ را دریافت کرده و حاصل جمع آنان که برابر است با ۸ بود را در صفحه نمایش نشان دهد. اما برنامه‌ی شما در صفحه نمایش عدد ۱۵ را نمایش می‌دهد که خلاف چیزی است که مورد نظر ماست. این نوع خطاها را خطاهای معنایی (Semantic Error) می‌نماند که هیچگونه اخطار یا پیامی از طرف کامپیوتر به برنامه‌نویس برنمی‌گرداند و برنامه‌نویس خود وظیفه یافتن و اصلاح اشتباه را بر عهده دارد. این خطاها را خطرناکترین نوع خطاها می‌نماند.


در تصویر زیر می‌توانید ساختار اجرا و وجود خطا در یک برنامه را مشاهده کنید:

طراحی شده توسط محمدرسول عزیزی
طراحی شده توسط محمدرسول عزیزی


امیدوارم این مقاله درمورد انواع خطاهای برنامه‌نویسی و ساختار انها توضیح شفافی را به شما داده باشد.

یا حق.


محمدرسول عزیزی

۲۲ فروردین ۱۴۰۳