پرتکرار ترین خطاهای برنامه نویسی

Most Common Types of Erorrs in programmingحتی خیلی از کسانی که سال هاست در دنیای برنامه نویسی مشغول به کار هستند انواع ارور هارا نمیشناسند و همه آنهارا باگ خطاب میکنند ، که اینگونه نیست ، باگ ها هم نوعی از انواع خطا ها هستند که در ادامه با آنها آشنا میشویم.1 - خطا های قواعد نوشتاری ( Syntax Errors )زبان های برنامه نویسی هم مانند ، زبان انسان ( انگلیسی ، فارسی ، فرانسوی و . . . ) قواعد و قوانینی دارند که باید برای برقراری ارتباط با کامپیوتر به وسیله ی این زبان ها این قوانین را رعایت کنیم.برای مثال: در یک سری از زبان های برنامه نویسی زمانی که ما میخواهیم یک رشته ( String ) را چاپ کنیم ، از قاعده ی نوشتاری ( Syntax ) زیر استفاده میکنیم.print('Hello World!');اگر برای انجام این دستور ، تابع قوانین زبان برنامه نویسی خود نباشیم ، با یک ارور مواجه خواهیم شد به نام Syntax Error یا Parse Error که همان خطای قواعد نوشتاری میباشد.به طور مثال اینگونه بنویسیم : print('Hello World!') # semicolon is missing print('Hello World!); # single quotation isn't currect print('Hello World!&quot); pri(&quotHello World); and . . . .هنگامی که ما با چنین اروری مواجه میشویم ، کل برنامه متوقف میشود تا زمانی که مشکل برطرف شود.رعایت قواعد نوشتاری کاره دشواری نیست ، زیرا کامپایلر یا مفسر زبان برنامه نویسی ، خطای نوشتاری مارا به ما گوشزد و ما میتوانیم آن را اصلاح کنیم.2 - خطای منطقی (Logic Errors OR Bugs)خطای منطقی به خطایی میگویند که همه چیز از لحاظ نوشتاری صحیح میباشد ولی الگوریتم پیاده سازی نرم افزار مشکل دارد ، به طور مثال :شما نرم افزاری را دولوپ کرده اید ( توسعه داده اید) که قرار است 2 عدد را از کاربر گرفته و آنها را جمع کند : کاربر دو عدد 2 و 3 را به برنامه پاس میدهد ، به جای اینکه برنامه عدد 5 را بازگرداند ، عدد 6 را باز میگرداند ، هیچ خطایی وجود ندارد و برنامه صحیح کار کرده است ، ولی جواب منطقی نمیباشد زیرا حاصل ضرب اعداد را محاسبه کرده است در صورتی که ما انتظار حاصل جمع اعداد را داشتیم ، این یک مثال خیلی ساده بود از خطا های منطقی.Bug : قطعا تا الان کلمه ی باگ به گوشتون خورده ، باگ به همین خطا های منطقی یا Logic Error ها میگویند ، که به اشتباه خیلی از کسانی که تازه وارد دنیای برنامه نویسی میشوند به تمام خطا ها باگ میگویند.* در سال 1999 میلادی ، ناسا ، به دلیل یک باگه محاسباتی ( Logic Error || خطای منطقی ) یک فضا پیمارا از دست داد.3 - خطای کامپایل (Compilation Errors OR Compile Time Erorrs)برخی از زبان های برنامه نویسی کامپایلری هستند ( توی یه مقاله جدا تفاوت بین زبان های کامپایلری و مفسری رو توضیح میدم) یعنی توسط یک نرم افزار به نام کامپایلر کد های سطح بالایی ( کد سطح بالا به کدی میگویند که به زبان انسان (انگلیسی) نزدیک است) که ما نوشتیم را به کد سطح پایین ( کدی که به زبان ماشین (Binary Code ) نزدیک باشد) تبدیل میکنند تا کامپیوتر بتواند آنهارا متوجه شود و به دستورات ما عمل کند.این نوع خطا هنگام انجام فرایند کامپایل اتفاق میوفتد برای مثال ، زمانی که ما به یک Syntax Error برخورد میکنیم ، همزمان Compile Time Error نیز اتفاق میوفتد. (برای درک بیشتر این موضوع به مثال زیر توجه کنید) زمانی که ما کد زیر را کامپایل میکنیم : print('Hello World!'; کامپایلر به ما میگوید که این دستور برایش ناشناخته است و نمیتواند آن را به زبان ماشین تبدیل کند زیرا انتظار دارد که پرانتز هارا ببندید.4 - خطای محاسباتی (Arithmetic Errors) این خطا یکی از زیر مجموعه های خطا های منطقی (Logic Errors ) یا باگ ها است که مخصوص محاسبات میباشد.تقریبا میشه گفت معروف ترین Arithmetic Error خطای Division by Zero میباشد ، این خطا هنگامی رخ میدهد که ما یک عدد را تقسیم بر صفر کنیم ، همانطور که میدانید ، تقسیم بر صفر بینهایت است و ما انقدر حافظه نداریم که آن را ذخیره کنیم ، به همین دلیل با خطای Division by zero مواجه میشویم.در برخی از زبان های برنامه نویسی ثابتی (Constant) وجود دارد برای نمایش این مقدار به نام infinity.5 - خطای منبع (Resource Errors) زمانی که برنامه شما اجرا میشود ، کامپیوتر شما مقداره مشخص و معینی ، فضا به این برنامه اختصاص میدهد و اگر برنامه از این مقدار تجاوز کند با Resource Errors مواجه میشویم.اگر بخواهم مثالی از این نوع خطا برای شما بیاورم میتوانم به یک حلقه بینهایت (infinity loop) اشاره کنم :(حلقه بینهایت به حلقه ای میگویند که همیشه اجرا شود شرط حلقه همیشه برقرار باشد.)while(true){ print(&quotMasoud Harooni&quot); }این حلقه هیچ گاه پایان نمی یابد به همین دلیل ، مقدار وحشتناکی از حافظه مارا اشغال میکند و با یک Resource error مواجه میشویم.6 - Interface Errorsتصور کنید که یک API دارید که زمانی که میخواهید از آن API استفاده کنید ، باید 3 تا آرگومان به آن پاس بدهید ولی تعداد آرگومان ها یا کمتر است یا بیشتر در این لحظه شما با Interface Errors مواجه خوهید شد.امیدوارم این مقاله براتون مفید بوده باشه ، ممنون میشم مشکلات و نواقصم را برام کامنت کنید تا در کنار هم پیشرفت کنیم?‍♂️?❤ایمیل : اگر چیزی رو میخواستید مطرح کنید در رابطه با مقاله از این ایمیل میتونیم با هم در ارتباط باشیم.?به امید موفقیت تک تکتون?