خطاهای رایج در زبان برنامه‌نویسی جاوا

اگر مقالات مربوط به جاوا را دنبال کرده باشید می‌دانید که جاوا یک حوزه برنامه‌نویسی شی‌گرا ست که با استفاده از آن می‌توان برنامه‌های بسیاری را تحت دسکتاپ، تحت وب و یا اپلیکیشن‌های موبایل ایجاد کرد. زبان جاوا به علت ویژگی‌هایی همچون امنیت بالا و قابل حمل بودن کدهای نوشته شده در آن، برنامه نویسان بسیاری را در سراسر دنیا به خود جلب کرده است.در این مطلب قرار است راجع به خطاهای متداول در این زبان صحبت کنیم. در واقع در زبان‌های برنامه نویسی انواع خطاها یک بخش جداناپذیر از آن‌ها هستند. ولی شناخت و رفع هر کدام از این خطاها می‌تواند برای هر برنامه نویسی یک راه حل ایجاد کند تا در این زمینه موفق‌تر عمل کند.۱) 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این پیغام یک خطای زمان اجراست که زمانی رخ می‌دهد که قسمتی از کد سعی می‌کند به مقادیری از آرایه دسترسی پیدا کند که وجود ندارند.جمع‌بندیهمانطور که می‌دانید برنامه نویسان در زبان برنامه‌نویسی جاوا از قواعد مشخصی برای تعیین دقیق دستورها و کلاس‌ها و ... استفاده می‌کنند. بنابراین با شناخت و رعایت کردن این قواعد می‌توان تا حدودی از بوجود آمدن این خطاها پیشگیری کرد. اگر تازه وارد این حوزه شده‌اید در ابتدای کدنویسی با خطاهای بسیاری روبرو می‌شوید ولی با تکرار و تمرین بسیار زیاد تعداد این خطاها کمتر می‌شود. امیدوارم خواندن این مقاله در حوزه آموزش برنامه‌نویسی اندروید برای شما مفید واقع شده باشد.آیا شما نیز در زبان برنامه نویسی جاوا با خطایی روبرو شده‌اید؟