پیام های خطا و کامنت ها در برنامه نویسی جاواReviewed by صابر بوستانی on Oct 17Rating:

جاوا

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

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

 

پس از آشنایی با مفاهیم شئی گرایی در برنامه نویسی، دو مسئله ای را که می تواند برای برنامه نویسان مبتدی مفید واقع شود را مطرح خواهیم کرد. این دو مسئله عبارتند از Error هایی که ما در برنامه نویسی با آن ها مواجه خواهیم شد و همچنین نحوه Comment کردن یا مخفی کردن بخشی از اطلاعات. در مقدمه این سری از آموزش های زبان برنامه نویسی جاوا، توضیح مختصری از Error ها یا مشکلاتی که برنامه نویسان مکرراً با آن ها مواجه می شوند آورده شد. ابتداً به مرور مطالب گذشته پرداخته و سپس موارد تکمیلی را توضیح خواهیم داد. مشکلات یا Error ها در زبان برنامه نویسی جاوا به چند دسته تقسیم می شوند: گروه اول Error هایی هستند که از نوع Compile-time Error می باشند. به طور مثال دستور system.out.println(); در مقایسه با System.out.println(); اشتباه است چرا که حرف اول واژه system به صورت کوچک نوشته شده است و همین مسئله موجب می گردد که برنامه Compile نشود. خبر امیدوار کننده اینجا است که
این گروه از مشکلات توسط خود نرم افزاری که برنامه خود را با آن می نویسیم تشخیص داده شده و به ما اخطار داده می شوند و به سادگی می توان آن را رفع کرد. برای روشن شدن این مطلب به ذکر چند مثال تصویری به همراه توضیحات خواهیم پرداخت. همانطور که در آموزش های قبلی فرا گرفتیم، پروژه ای در محیط برنامه نویسی جاوا ایجاد کرده و یک Class با نام CompileTimeErrors یا هر نام دیگردر آن ایجاد می کنیم)فقط به خاطر داشته باشیم که نام Class ما با نام فایل .java که می سازیم. دقیقاً یکی باشد که در غیر این صورت برنامه ما با مشکل مواجه خواهد شد(. حال می بایست کدی مشابه کد زیر داشته باشیم:
public class CompileTimeErrors {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
را روی صفحه مانیتور This is a Compile time error حال می خواهیم جمله نمایش دهیم پس می بایست کد خود را به شکل زیر ویرایش نماییم)لازم به ذکر است های کد را که هیچ تاثیری در نحوه ی اجرای برنامه ما ندارند را حذف Comment که ها به طور مفصل توضیح خواهیم Comment می کنیم. در بخش بعدی پیرامون انواع داد(:

 

در واقع کد فوق یک برنامه کامل و صحیح جاوا است که بدون هیچ مشکلی اجرا خواهد از ما Compiler شد. در این جا ما قصد داریم تا عمداً تغییری در کد ایجاد کنیم تا که می بایست حتماً با حروف کوچک نوشته شود out ایراد بگیرد. به همین منظور واژه را به صورت OUT می نویسیم. به محض اینکه ما واژه ی out را به OUT تغییر دهیم، از روی دو مورد می توانیم متوجه شویم که برنامه ما دارای Error است. محیط برنامه نویسی اکلیپس دور واژه ی مشکل زا که در اینجا OUT است یک نقطه چین قرار داده است. از سوی دیگر در کنار نام فایل .java دو علامت ستاره مشاهده می شود که نشانگر ایرادی در برنامه است. حال با قرار دادن نشانگر موس خود روی واژه OUT اکلیپس پیامی را به ما نشان می دهد. این یکی از بخش های لذت بخش کار کردن با نرم افزار اکلیپس است. این محیط برنامه نویسی قدرتمند مشکل را پیدا کرده و در جهت رفع آن تعدادی پیشنهاد می دهد)در اینجا صرفاً یک پیشنهاد بیشتر به ما نمی دهد(. چنانچه به خط آبی رنگ توجه کنیم، می بینیم که به ما پیشنهاد می شود که واژه OUT را به out تغییر دهیم که با این کار مشکل ما رفع خواهد شد. لازم به ذکر است که مثال فوق به منزله یکی از ساده ترین انواع Error ها در محیط برنامه نویسی جاوا است. در واقع یکسری از Error ها هستند که تا حدودی پیچیده تر هستند و اکلیپس برای رفع مشکل، بیش از یک مورد به ما پیشنهاد می دهد که در چنین حالتی کار ما به عنوان برنامه نویس این است که تک تک پیشنهادات را مورد بررسی قرار داده و سپس تغییر مورد نیاز را اعمال کنیم. نوع دیگر از Error ها تحت عنوان Unchecked Runtime Exception شناخته می شوند. در این صورت ما هیچ گونه Compile-time Error نداریم اما برنامه هم به طور کامل اجرا نمی شود. در واقع برنامه ای که ما نوشته ایم کاری را از جاوا می خواهد انجام دهد که جاوا از انجام آن ناتوان است. به طور مثال فرض کنیم که ما یک متغییر از جنس int داریم که Value اختصاص داده شده به آن ۱,۰۰۰,۰۰۰ است. در حین نوشتن برنامه ما با هیچ گونه مشکلی مواجه نخواهیم شد اما به محض اینکه اقدام به Compile کردن برنامه می کنیم Error دریافت می کنیم. در مثال فوق اشکال کار در اینجا است که ما مابین ارقام یک کاما قرار داده ایم از این رو جاوا قادر به Compile کردن برنامه نخواهد بود.

به منظور رفع این مشکل می بایست عدد فوق را به ۱۰۰۰۰۰۰ تبدیل کنیم. در حقیقت نرم افزار اکلیپس از درک اینکه این مسئله می تواند در حین اجرا مشکل زا باشد عاجز است. برای روشن تر شدن این مسئله مثالی از دنیای واقعی می زنیم. فرض کنیم که شما از شخصی آدرس می پرسید. آن شخص به شما می گوید که مستقیم بروید تا به یک چهار راه برسید سپس به سمت راست بروید و رو به روی شما یک سینما قرار دارد. حال شما همانطور که آن شخص گفت مسیر را طی می کنید. مستقیم می روید. به چهار راه که رسیدید به سمت راست می روید. به رو به رو که نگاه می کنید به جای یک سینما یک دیوار سیمانی رو به روی شما قرار دارد. به عبارت دیگر شما از اول نمی دانستید که آدرسی که به شما داده شده است اشتباه است. زمانیکه اینگونه Error ها اتفاق می افتند نیز همین طور است. از بدو امر جاوا نمی داند که در حین اجرای برنامه در وسط کار مشکلی قرار است اتفاق افتد از همین رو نمی تواند پیش بینی کند که برنامه در حین Compile با مشکل مواجه خواهد شد.دسته دیگری از Error ها از نوع Logical یا منطقی هستند. در چنین مواقعی نرم افزار اکلیپس هیچ گونه خطایی را نشان نخواهد داد و برنامه هم به طور کامل اجرا خواهد شد اما پاسخی که نرم افزار قرار بود به ما بدهد صحیح نیست. فرض کنیم در مثال فوق شخصی که به ما آدرس می دهد به جای اینکه به ما بگوید به سمت راست برویم بگوید که به سمت چپ برویم. این دسته از Error ها به منزله چالش بر انگیزترین Error ها می باشند به طوری که رفع کردن آن ها هم ممکن است با دشواری زیادی همراه باشد)شاید مجبور باشید هفته ها وقت صرف کنید تا مشکل را بیابید(. نکته ای که بایستی مد نظر قرار داده شود این است که خیلی از این دسته از Error ها خیلی اوقات اصلاً مورد توجه قرار نمی گیرند و در آینده مشکلات زیادی را برای ما به بار خواهند آورد. دسته آخر Error ها که بهتر است نام آن ها را Error نگذاریم بلکه Warning یا هشدار بنامیم تحت عنوان Compile-time Warning شناخته می شوند.

به طور کلی این دسته از هشدار ها به مهمی Error ها نمی باشند. در واقع زمانیکه محیط برنامه نویسی اکلیپس شاهد مسئله مشکوکی باشد، یک آیکون زرد رنگ با علامت تعجب مقابل خطی که به آن مشکوک است نمایش می دهد. به مثال زیر توجه فرمایید: در مثال فوق، ما یک متغییر از جنس int ایجاد کرده ایم که نام آن test است و یک Value به میزان ۰۱۱ برای آن در نظر گرفته شده است. در مقابل خطی که متغییر در آن قرار دارد یک علامت زرد رنگ با یک علامت تعجب قرار دارد. به عبارت دیگر این یک هشدار از طرف نرم افزار اکلیپس است که می خواهد به ما بگوید که این متغییر در هیچ کجای برنامه مورد استفاده قرار نگرفته است و دیگر اینکه آیا مطمئن هستید که می خواهید این متغییر را در کد خود نگه دارید. در واقع هر موقع که ما با چنین هشدار هایی مواجه شویم می توانیم نشانگر موس خود را روی آن علامت زرد رنگ نگه داشته و پیشنهادی را که اکلیپس به ما می دهد را مطالعه کنیم. نوشته ای که در قسمت زرد رنگ دیده می شود حاکی از آن است که Value متغییری تحت عنوان test در هیچ کجای برنامه مورد استفاده قرار نگرفته است. به طور کلی مشکلات برنامه نویسی اصطلاحاً Bug نامیده می شوند و فرایند مشکل یابی و رفع آن اصطلاحاً Debugging گفته می شوند که تسلط به Debugging خیلی می تواند ما را در برنامه نویسی کمک کند. اضافه کردن Comment به کدهای خود در حین برنامه نویسی، به طرز چشمگیری می تواند ما را در برنامه نویسی کمک کند. در حقیقت برنامه نویسان با اینکار راه را برای ویرایش کد خود در آینده آسان می کنند. همانطور که قبلاً هم اشاره شد در زبان برنامه نویسی جاوا سه مدل Comment وجود دارد که عملکرد هر کدام از آن ها را مورد بررسی قرار خواهیم داد.

 

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

 

آنچه در مورد این نوع از Comment ها بسیار جالب توجه است این است که چنانچه بخشی از برنامه شما دچار مشکل باشد و شما به اصطلاح بخواهید برنامه را Debug کنید می توانید از این Comment استفاده کنید به این صورت که نشانگر موس خود را روی بخشی از کد که تصور می کنید مشکل زا است قرار داده، سپس دکمه کنترل را با علامت / فشار دهید. خواهید دید که آن بخش از کد شما Comment شده و به رنگ متفاوتی در خواهد آمد. حال می توانید برنامه را Compile کنید و ببینید که آیا مشکل رفع شده است یا خیر. چنانچه مشکل رفع شده بود متوجه خواهید شد که آن بخشی از کد که Comment شده است دارای مشکل است پس نیاز است که آن را رفع نمایید. چنانچه رفع نشده بود مجدداً با انتخاب آن بخش از کد دکمه کنترل و علامت / را فشار دهید تا از حالت Comment درآید و این کار را برای مابقی بخش های برنامه خود تا زمانی می توانید انجام دهید که مشکل برنامه خود را پیدا نمایید)اگر چه نام این Comment ها تحت عنوان Comment های پایان خط معروف است، اما ما می توانیم آن ها را در ابتدای یک خط از کد نیز مورد استفاده قرار دهیم(. نوع سوم از Comment ها از نوع javadoc می باشند به این معنی که با قرار دادن علامت /** در ابتدای خطی که تمایل داریم به Comment تبدیل شود و قرار دادن علامت */ در انتهای خطی Comment ما به پایان می رسد، ما توضیحاتی را در داخل کد خود درج می کنیم که برای کسانی که می خواهند کد ما مطالعه کنند ولی دانش زبان جاوا ندارند و یا برای دیگر برنامه نویسان که می خواهند کد ما را مطالعه کنند بسیار مفید خواهد بود به این صورت که از کلیه Comment های برنامه خود که از نوع javadoc هستند خروجی HTML می گیریم و کلیه Comment ها به صورت یک صفحه وب در اختیار علاقمندان قرار می گیرد)نحوه ایجاد javadoc برای برنامه نویسان مبتدی ضروری نیست بنابراین از توضیح در این باره خودداری می شود(.

کردن بخشی Comment ها و همچنین با نحوه صحیح Error در این آموزش با انواع از کد خود آشنا شدیم. در آموزش بعدی با انواع متغییر های در زبان برنامه نویسی جاوا یا مقدار به آن ها و غیره آشنا خواهیم شد. Value و نحوه اختصاص یک Value یا مقدار به آن ها و غیره آشنا خواهیم شد.

مدرس: بهزاد مرادی