CodeGym /جاوا بلاگ /Random-UR /جاوا میں ناقابل رسائی بیان کوڈ کی خرابی۔
John Squirrels
سطح
San Francisco

جاوا میں ناقابل رسائی بیان کوڈ کی خرابی۔

گروپ میں شائع ہوا۔
جاوا شروع کرنے والوں میں ناقابل رسائی کوڈ اسٹیٹمنٹ ایک عام مسئلہ ہے۔ بہت سے نئے ڈویلپرز غلطی کو "ڈیڈ کوڈ" کے ساتھ الجھاتے ہیں - جاوا سے متعلق ایک اور رجحان۔ اگرچہ دونوں ظاہری طور پر ایک جیسے ہیں، کچھ اختلافات ہیں جن کا ہم اس پوسٹ میں احاطہ کریں گے۔ اس کے علاوہ، آپ کو پتہ چل جائے گا کہ آپ کے کمپائلر کو ناقابل رسائی کوڈ اسٹیٹمنٹ واپس کرنے کی سب سے عام وجوہات کیا ہیں اور اپنے کوڈ کو دوبارہ چلانے اور چلانے کے لیے کچھ آسان اصلاحات دریافت کریں۔

ناقابل رسائی کوڈ کیا ہے؟

تعریف کے مطابق، ناقابل رسائی بیان وہ ہوتا ہے جو کسی کمپائلر کے ذریعے عمل میں نہیں لایا جائے گا جب آپ ڈیپلائی کوڈ کو تیار کرتے ہیں۔ ایک ناقابل رسائی کوڈ کی واپسی کا بیان عام طور پر پروگرام کے اندر ایک منطقی غلطی کی علامت ہے۔ اگرچہ آپ کے اس طرح کے بیان کے ساتھ ختم ہونے کی کئی وجوہات ہیں، تمام صورتوں میں، ناقابل رسائی کوڈ بے کار ہے، آپ کے پروگرام کو بے ترتیبی بناتا ہے، اور ہر قیمت پر اس سے بچنا چاہیے۔

ناقابل رسائی کوڈ بمقابلہ ڈیڈ کوڈ

ترقیاتی برادری میں، "ناقابل رسائی" اور "مردہ" کوڈ کے تصورات عملی طور پر مترادف ہیں۔ تاہم، اگر آپ دستاویزات کو پڑھتے وقت ناگوار ہیں تو آپ دیکھ سکتے ہیں کہ ترقیاتی رہنما خطوط اکثر ان دونوں کا الگ الگ ذکر کرتے ہیں۔ کیا مردہ اور ناقابل رسائی کوڈ میں کوئی فرق ہے؟ بنیادی طور پر، دونوں غلطیوں کے درمیان فرق اس طرح ہے کہ مرتب کرنے والا ان پر ردعمل ظاہر کرتا ہے۔ اگر کمپائلر میں آپ جو کوڈ داخل کرتے ہیں وہ ناقابل رسائی ہے ، تو آپ کو جاوا نوٹیفکیشن میں کمپائل رن ٹائم ایرر ملے گا۔ اگر آپ کا بیان " ڈیڈ کوڈ " ہے، تو رن ٹائم کی کوئی خرابی نہیں ہوگی - ایک ڈویلپر کو درج ذیل سسٹم وارننگ ملے گی:
class DeadCode {
    void deadcode_Method(boolean b) {
    System.out.println("Reachable statement");
        if(true) {
        return;
        }
    System.out.println("Unreachable statement"); // dead code
    }
}
چونکہ ڈیڈ کوڈ کے معاملے میں کوئی براہ راست کمپائلر غلطی نہیں ہے، اس کا پتہ لگانا مشکل ہے۔ تاہم، اگر آپ System.out.printIn ریٹرن کا محتاط ٹریک رکھتے ہیں، تو ڈیڈ کوڈ کو پکڑنے سے آپ کو پریشانی نہیں ہونی چاہیے۔

آپ کو ناقابل رسائی کوڈ اسٹیٹمنٹس کیوں ملتے ہیں۔

اچھی خبر یہ ہے کہ ناقابل رسائی کوڈ کے مسائل کی وجہ کا پتہ لگانا آسان ہے۔ تین اہم وجوہات ہیں جن کی وجہ سے آپ کا کمپائلر غلطیاں واپس کرتا رہتا ہے۔
  • بیانات منتقل کریں۔ اگر آپ اپنے کوڈ کو واپسی کے بیان کے ساتھ توڑتے ہیں، تو "return = true" کے بعد کچھ بھی نہیں کیا جائے گا۔
  • لامحدود لوپ - لامحدود لوپ کے بعد آپ نے جو کوڈ لکھا ہے اس پر عمل درآمد نہیں کیا جائے گا کیونکہ سسٹم لوپ ایکشن کو دہراتا رہے گا۔ اس طرح، آپ کے کوڈ کو بائٹ کوڈ میں تبدیل کرتے وقت، مرتب کرنے والا ایک ناقابل رسائی کوڈ ایرر بھیجے گا۔
ان مسائل کو جھنڈا لگانے اور ٹھیک کرنے میں آپ کی مدد کرنے کے لیے، آئیے ان پر زوم ان کریں۔

بیانات واپس کریں۔

واپسی کا بیان ٹرانسفر کلیدی الفاظ کے گروپ کا ایک حصہ ہے، یعنی یہ آپ کے طریقہ کار کو ختم کر دیتا ہے۔ یہ فنکشنز کو الگ کرنے میں مددگار ہے اور آپ کے کوڈ کو پڑھنے کے قابل اور صاف رکھنے میں مدد کرتا ہے۔ تاہم، چونکہ آپ واپسی = سچ کے بعد فنکشن میں نئے بیانات شامل نہیں کر سکتے ہیں، اس لیے مطلوبہ الفاظ کے بعد فنکشن جاری رکھنے کی کوشش کرنے سے آپ کو "ناقابل رسائی کوڈ" کمپائلر ایرر ملے گا۔ آئیے "واپسی = سچ" ​​غلط استعمال کی ایک مثال پر ایک نظر ڈالتے ہیں اور جس طرح سے مرتب کرنے والا اس پر رد عمل ظاہر کرتا ہے۔
class GFG {
    public static void main(String args[])
    {

        System.out.println("My code will run");

        return;

        // ironically, this code will never run
        // here’s an unreachable code message a developer gets.
        System.out.println("My code will run");
    }
}
یہاں یہ ہے کہ کمپائلر میں واپسی کے بیان کا غلط استعمال کیسے دکھایا جائے گا:

prog.java:11: error: unreachable statement
System.out.println(“My code will run”);
^
1 error
جو کچھ آپ نے سیکھا ہے اس کو تقویت دینے کے لیے، ہم تجویز کرتے ہیں کہ آپ ہمارے جاوا کورس سے ایک ویڈیو سبق دیکھیں
بریک اسٹیٹمنٹس بریک اسٹیٹمنٹس ایک اور قسم کے کلیدی الفاظ ہیں جن کے ساتھ آپ کو جاوا فنکشن لکھتے وقت محتاط رہنے کی ضرورت ہے۔ تعریف کے مطابق، بریک کلیدی لفظ لوپ کو ختم کرنے کے لیے استعمال ہوتا ہے۔ نیچے دی گئی مثال میں، جیسا کہ ایک ڈویلپر لوپ سے باہر نکلتا ہے، وہ مزید بیان کو لائن 8 پر عمل کرنے کے قابل نہیں رہے گا - اس طرح، مرتب کرنے والا ایک ناقابل رسائی بیان کی غلطی دکھائے گا۔ یہ نمونہ کوڈ ہے جس کے نتیجے میں ناقابل رسائی کوڈ بیان ہوگا:
public class JavaCodeGeeks
     {
    public static void main(String[] args) {
     for(int i=1;i<5;i++)
        {
        System.out.println(i);
        break;
        System.out.println("Code after break");
        }
    }
}
ایک مرتب نقطہ نظر سے غلطی کو دیکھتے ہوئے، آپ کو درج ذیل غلطی کا بیان ملے گا۔

JavaCodeGeeks.java:8: error: unreachable statement
System.out.println("After break");
                ^
1 error

بیانات جاری رکھیں

Continue ایک لوپ کنٹرول کلیدی لفظ ہے جو اعمال کو دہرانے کے لیے استعمال ہوتا ہے۔ جب بھی آپ چاہتے ہیں کہ لوپ کا عمل خود شروع سے شروع ہو، اپنے کوڈ میں جاری رکھیں شامل کریں۔ بیان ڈویلپرز کو اس بات کا انتخاب کرنے میں مدد کرنے کے لیے مفید ہے کہ وہ لوپ کے کن بیانات کو دہرانا چاہتے ہیں اور جن کو وہ تکرار میں نہیں ڈالیں گے۔ اگرچہ استعمال کرنے کے لیے جاری ایک سیدھا کلیدی لفظ ہے، لیکن یہ کیسے کام کرتا ہے اس کی پوری سمجھ نہ ہونا ڈویلپرز کو "ناقابل رسائی کوڈ" کے جال میں لے جاتا ہے۔ چونکہ، جاری کا سامنا کرنے کے بعد، ایک سسٹم لوپ کو دہرائے گا، اس لیے کلیدی لفظ ان بیانات تک نہیں پہنچ سکے گا جو اس کی پیروی کرتے ہیں۔ کہو، آپ کے پاس درج ذیل کوڈ ہے:
public class JavaIsFun
{
    public static void main(String[] args) {
        for(int i=0;i<8;i++)
        {
            System.out.println(i);
            if(i==5)
            {
                continue;
                System.out.println("Coding after continue");
            }
        }
    }
}
سسٹم آپ کے "کوڈنگ کے بعد جاری" کے بیان پر عمل نہیں کرے گا - مرتب کرنے والا آپ کو اس کے بارے میں فوراً بتا دے گا۔
JavaIsFun.java:10: error: unreachable statement
                                System.out.println("Coding after continue");

لامحدود لوپس

ایک منظر نامہ جو "بریک" اور "جاری رکھیں" کلیدی الفاظ کے استعمال کی مثالوں سے ملتا جلتا ہے ایک لامحدود لوپ کا ہے۔ لامحدود لوپ کو ڈیزائن کرتے وقت، ایک ڈویلپر کو یاد رکھنا چاہیے کہ اس کے بعد کوئی بیان نہیں چلے گا۔ اس طرح، اگر آپ لوپ کو نہیں توڑتے ہیں، تو اس کے بعد لکھے گئے تمام کوڈ ناقابل رسائی ہوں گے۔ چیک آؤٹ کرنے کے لیے لامحدود لوپ کی غلط ہینڈلنگ کی ایک دلچسپ مثال یہ ہے:
public class JavaCodeGym
{
    public static void main(String[] args) {
        while(true)
        {
            System.out.println("Hey there");
        }
        System.out.println("Nice to see you");
    }
}
کیا آپ اندازہ لگا سکتے ہیں کہ غلطی کہاں چھپی ہے؟ ایک بار جب آپ اپنا کوڈ چلاتے ہیں تو مرتب کرنے والا فوراً اس کی طرف اشارہ کرے گا۔
//unreachable code statement compiler error
JavaCodeGym.java:10: error: unreachable statement
                System.out.println("Nice to see you");
چونکہ "آپ کو دیکھ کر اچھا لگا" سے پہلے ایک لامحدود لوپ موجود ہے ، اس لیے بیان کبھی بھی عمل میں نہیں آئے گا اور ناقابل رسائی کوڈ کی غلطی کو واپس کرتا رہے گا۔

نتیجہ

ناقابل رسائی کوڈ سے بچنے کے لیے، آپ کو یہ یقینی بنانا ہوگا کہ آپ کے سسٹم کے تمام بیانات میں بہاؤ موجود ہے۔ زیادہ تر جاوا ناقابل رسائی کوڈ کے مسائل کا تعلق کلیدی الفاظ کو سنبھالنے اور لوپس کو خراب طریقے سے سنبھالنے سے ہے۔ دن کے اختتام پر، اپنے کوڈ کو دو بار چیک کرنا ناقابل رسائی کوڈ کی غلطیوں سے بچنے کا واحد آزمائشی اور درست طریقہ ہے۔ آپ کو بھی ان کی طرف سے حوصلہ شکنی نہیں کرنی چاہیے - سیال جاوا کوڈ بنانے کی عادت برسوں کے تجربے اور مشق کے ساتھ آتی ہے۔ تو آئیے آئی ڈی ای کو ماریں اور زبردست سافٹ ویئر پروڈکٹس بنانا شروع کریں۔
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION