اگر مقالات مربوط به جاوا را دنبال کرده باشید میدانید که جاوا یک حوزه برنامهنویسی شیگرا ست که با استفاده از آن میتوان برنامههای بسیاری را تحت دسکتاپ، تحت وب و یا اپلیکیشنهای موبایل ایجاد کرد. زبان جاوا به علت ویژگیهایی همچون امنیت بالا و قابل حمل بودن کدهای نوشته شده در آن، برنامه نویسان بسیاری را در سراسر دنیا به خود جلب کرده است.
در این مطلب قرار است راجع به خطاهای متداول در این زبان صحبت کنیم. در واقع در زبانهای برنامه نویسی انواع خطاها یک بخش جداناپذیر از آنها هستند. ولی شناخت و رفع هر کدام از این خطاها میتواند برای هر برنامه نویسی یک راه حل ایجاد کند تا در این زمینه موفقتر عمل کند.
۱) Expected
این خطا زمانی رخ میدهد که قسمتی از کد وجود نداشته باشد. برای مثال زمانی که گذاشتن یک ";" یا پرانتز را فراموش میکنید، این خطا رخ میدهد.
معمولا این پیغام خطا به مکان دقیقی که در آن خطا رخ داده است اشاره نمیکند.
روشهای یافتن مکان دقیق خطا:
اطمینان حاصل کنید که تمامی پرانتزهای باز، بسته شده هستند.
گاهی اوقات کاراکترهایی مانند پرانتز باز نباید در جایگاه شروع قرار گیرند، پس برنامهنویس برای ایجاد تعادل در پرانتزها، آن را نمیبندد.
۲) Unclosed String Literal
پیغام خطای "Unclosed String Literal" زمانی نمایش داده میشود که انتهای یک string علامت کوتیشن وجود نداشته باشد. این خطای لفظی دقیقا به همان خطی که خطا در آن رخ داده است اشاره میکند.
نکته: در صورتی که یک رشته از اجزای مختلفی تشکیل شده باشد که توسط علامت "+" به هم متصل شده و رشته را تشکیل دهند، ممکن است گذاشتن کوتیشن بین آنها فراموش شود.
نکته: در کنار کوتیشنهایی که بخشی از string هستند باید از "\" استفاده کرد.
۳) Illegal Start of an Expression
دلایل زیادی برای بروز خطای Illegal Start of an Expression وجود دارد. اگرچه عنوان این پیغام خطا کمک زیادی به رفع آن نمیکند؛ برخی از برنامهنویسان معتقدند که علت آن کدنویسی بد است.
زمانی که برای تعریف یک مقدار جدید یا اختصاص یک مقدار به متغیر از یک عبارت استفاده میکنیم، ممکن است کامپایلر به دلیل پیدا نکردن سینتکس مورد انتظارش آن مقدار را شناسایی نکند و این خطا رخ دهد.
۴) x Cannot Find Symbol
این خطا، خطایی بسیار متداول در بین دانشجویان مبتدی است. تمامی شناسهها در جاوا میبایست قبل از استفاده تعریف شوند زیرا کامپایلر هنگام کامپایل کردن کد نمیتواند شناسهها را تشخیص دهد.
دلایلی که میتوانند باعث دریافت پیغام خطای Cannot Find Symbol شوند:
املای اشتباه شناسه که موجب عدم تطبیق آن با شناسهی تعریف شده میشود.
عدم تعریف شناسه پیش از استفاده
استفاده از متغیر در خارج از حوزهای که تعریف شده است.
ایمپورت نکردن کلاسی که شناسه در آن تعریف شده است.
۵) Public Class XXX Should Be in File
این خطا زمانی رخ میدهد که کلاس XXX و نام فایل برنامه جاوا مطابقت نداشته باشند. کد شما فقط در صورت یکسان بودن نام کلاس و پرونده جاوا کامپایل میشود.
برای پیشگیری از بروز این نوع خطا هنگام نوشتن برنامه اطمینان حاصل کنید که مقادیر متناسب با نوع داده متغیرها را در آنها ذخیره میکنید.
۶) Invalid Method Declaration; Return Type Required
این خطا بدین معناست که نوع بازگشتی متد تعریف شده به درستی تعیین نشده است.
روشهای رفع این خطا:
تعیین نوع بازگشتی
اگر بنا بر این باشد که متد تعریف شده
مقداری برنگرداند، میبایست نوع بازگشتی آن را "void" تعریف کنید.
Constructor یا سازنده نیازی به تعیین نوع بازگشتی ندارد. اما اگر خطایی در نام سازنده وجود داشته باشد، کامپایلر با سازنده مانند متدی که نوع بازگشتی آن به درستی تعریف نشده، رفتار میکند.
۷) array Not Initialized
این خطا زمانی رخ میدهد که آرایه تعریف شده ولی به درستی مقداردهی نشده باشد.
۸) Non-Static Method ... Cannot Be Referenced From a Static Context
این خطا زمانی رخ میدهد که یک متد غیر استاتیک در یک متد استاتیک فراخوانی میشود.
۹) Method in Class Cannot Be Applied to Given Types
این خطا زمانی اتفاق میافتد که پارامترهای اشتباه در متد فراخوانی میشوند.
برای پیشگیری از این نوع خطا، از یکسان بودن پارامترهای استفاده شده در متد با پارامترهای مورد نیاز آن که در کنار نام تابع تعریف شدهاند اطمینان حاصل کنید.
۱۰) Unreachable Statement
این خطا زمانی رخ میدهد که یک عبارت در جایی نوشته شود که نتواند اجرا شود. برای مثال این خطا زمانی که عبارت بعد از break یا return نوشته شود، رخ میدهد.
۱۱) NoClassDefFoundError
این خطا نشان میدهد که تعریف کلاس در هنگام تهیه برنامه پیدا شده است، اما کلاس برنامه در هنگام اجرا در دسترس نیست. علت دیگر بروز این خطا عدم تعریف Main است.
روشهای رفع این خطا:
قرار دادن فایل در دایرکتوری صحیح
اطمینان از هم نام بودن نام کلاس و فایل (حساس به بزرگ و کوچک بودن حروف)
۱۲) Cannot Return a Value From Method Whose Result Type Is Void
این خطا زمانی رخ میدهد که از متدی که نمیتواند مقداری برگرداند، بخواهیم یک مقدار را return کند. این خطا معمولا با تغییر نوع تابع از void به int برطرف میشود.
۱۳) Missing Return Value
این خطا زمانی رخ میدهد که مقدار بازگشتی تابع، اشتباه بوده یا وجود نداشته باشد.
۱۴) ArrayIndexOutOfBoundsException
این پیغام یک خطای زمان اجراست که زمانی رخ میدهد که قسمتی از کد سعی میکند به مقادیری از آرایه دسترسی پیدا کند که وجود ندارند.
جمعبندی
همانطور که میدانید برنامه نویسان در زبان برنامهنویسی جاوا از قواعد مشخصی برای تعیین دقیق دستورها و کلاسها و ... استفاده میکنند. بنابراین با شناخت و رعایت کردن این قواعد میتوان تا حدودی از بوجود آمدن این خطاها پیشگیری کرد. اگر تازه وارد این حوزه شدهاید در ابتدای کدنویسی با خطاهای بسیاری روبرو میشوید ولی با تکرار و تمرین بسیار زیاد تعداد این خطاها کمتر میشود. امیدوارم خواندن این مقاله در حوزه آموزش برنامهنویسی اندروید برای شما مفید واقع شده باشد.
آیا شما نیز در زبان برنامه نویسی جاوا با خطایی روبرو شدهاید؟