علامت های مربوط به خطا و هشدار، در برنامه eclipse
در مباحث قبلی، برنامه eclipse را به عنوان محیطی برای نوشتن کدهای برنامه اندروید معرفی کردیم. برنامه eclipse به گونه ای طراحی شده است که قواعد کدنویسی را با دقت بالایی می تواند چک کند و اگر شما بخشی از قواعد کدنویسی را رعایت نکنید، با نشان دادن یک پیام خطا و یا هشدار، به شما این مورد را اعلام می کند.
ابتدا باید شرح بدهیم که تفاوت بین پیام خطا و پیام هشدار در برنامه eclipse چیست. زمانی که شما با یک پیام خطا روبرو شوید (این پیام با علامت قرمز رنگ نمایش داده می شود)، یعنی کدها یک مشکل اساسی دارد که تا آن را برطرف نکنید، برنامه اندروید ساخته نخواهد شد. یعنی تا زمان برطرف کردن این خطا، برنامه eclipse به شما اجازه شبیه سازی برنامه اندروید و یا ساخت فایل نهایی برنامه اندروید را نمی دهد. اما پیام هشدار که با رنگ زرد رنگ نمایش داده می شود، تنها مواردی را به نویسنده برنامه اندروید هشدار می دهد، مواردی که ممکن است که به بهتر کد نوشتن (استاندارد کد نوشتن)، و یک سری موارد دیگر کمک کند. عدم توجه به این هشدارها، موجب عدم اجرای برنامه نخواهد شد و شما با وجود تعدادی هشدار، می توانید برنامه اندروید خود را بسازید و برنامه هم مشکلی نخواهد داشت.
در ادامه، تعدادی مثال در مورد پیام خطا و پیام هشدار در برنامه eclipse ذکر خواهیم کرد تا بیشتر با آنها آشنا شوید.
پیام خطای قرمز رنگ در برنامه eclipse :
فرض کنید که من، علامت ; را که باید در پایان یک خط از کدها قرار بگیرد، حذف کنم. برنامه eclipse یک پیام خطا را به صورت علامت قرمز رنگ در کنار آن خط از کدها نمایش خواهد داد :
برای اینکه متوجه بشویم که خطا به چه دلیل بوده است، موس را بر روی آن علامت قرمز رنگ می بریم تا متن پیام خطا نمایش داده شود :
مشاهده می کنید که در متن خطا، به طور واضح گفته شده است که یک علامت ; را باید در انتهای آن خط از کدها جایگذاری کنیم.
شاید فکر کنید که چون برای هر پیام خطا، یک متن توضیح، نمایش داده می شود، بنابراین به راحتی می توان خطاها را برطرف کرد، اما من به تجربه به شما می گویم که در بیشتر موارد ممکن است که گیج شوید و ندانید که خطا از چیست. مثلا شما 10 خط از کدهایی که در یک راهنما خوانده اید را در برنامه خود کپی می کنید و 4 یا 5 علامت خطا نمایش داده می شود. اگر بخواهید تک تک آنها را بخوانید، معمولا جواب نمی گیرید زیرا به احتمال زیاد، کدها دارای تعدادی روش (method) و کلاس (class) جدید است که شما تازه با آنها آشنا شده اید و معمولا ساختار استفاده از آنها را نمی دانید. من در زیر، تعدادی نکته برای بر طرف کردن خطاها ذکر می کنم :
1- مهمترین نکته، استفاده از کدهای کامل و قبلا تست شده است تا اصلا به خطا برخورد نکنیم که بعد مجبور شویم با تغییر کدها، آن خطاها را برطرف کنیم (از این حرف من این طور برداشت نکنید که اگر یک کد درست در پروژه اندروید خود کپی کنید، هیچ پیام خطایی نمایش داده نمی شود، در موارد دیگر، بیشتر توضیح می دهم). معمولا آموزش هایی که فایل های پروژه را هم در اختیار شما می گذارند، منابع معتبری هستند زیرا به هر حال شما فایل پروژه را دارید و اگر کدنویسی خودتان جواب نداد، می توانید آن را باز کرده و ببینید تفاوت کد شما و آن پروژه اندروید در چیست.
2- باید به محل مناسب کپی کردن کدها نیز توجه داشته باشید. اکثر مباحث سایت های مختلف، برای افرادی نوشته شده که حداقل چند پروژه ساخته و جواب گرفته اند و می دانند که اگر گفته شد یک سری کد را درون activity کپی کنید، در چه محلی باید کد را قرار دهند. بنابراین اگر در ابتدای راه هستید، ابتدا چند پروژه بسازید که کدنویسی آن، به طور مرحله به مرحله و کامل شرح داده شده تا با ساختار فایل ها و کدها در برنامه نویسی اندروید آشنا شوید.
3- زمانی که شما یک سری کد کاملا درست و بی نقص را در پروژه خود کپی می کنید، معمولا تعدادی خطا نمایش داده می شود که اعلام می کند که شما package های لازم برای استفاده از این کلاس ها (class) و روش ها (method) را وارد (import) نکرده اید (البته به این واضحی که من گفتم، تذکر نمی دهد بلکه معمولا نام آن کلاس یا روش را ذکر کرده و عبارت cannot be resolved را در ادامه می آورد، البته این عبارت ممکن است برای یک سری خطای دیگر هم به کار رود). بنابراین هر وقت یک سری کد را به درون کدهای activity برنامه اندروید کپی کردید، کلیدهای Ctrl و Shift و O (حرف انگلیسی، نه صفر) از کیبورد را به طور هم زمان فشار دهید. این سه کلید، باعث می شود که برنامه eclipse به طور خودکار، package های لازم برای کلاس ها و روش های استفاده شده در activity را به درون activity وارد (import) کند.
کدهای مربوط به import کردن package ها، شبیه کد زیر می باشد (می توانید قبل و بعد از فشردن آن دکمه ها، تفاوت را در تعداد اینگونه کدها ببینید) :