CodeGym /جاوا بلاگ /Random-SD /جاوا ۾ ناقابل رسائي بيان ڪوڊ غلطي
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 واپسي جي محتاط ٽريڪ رکو ٿا، مئل ڪوڊ کي پڪڙڻ توهان کي پريشاني جو سبب نه هجڻ گهرجي.

توهان ڇو حاصل ڪريو ناقابل رسائي ڪوڊ بيان

سٺي خبر آهي، اهو آسان آهي ته اڻڄاتل ڪوڊ مسئلن جي سبب کي ڳولڻ لاء. ٽي مکيه سبب آهن ڇو ته توهان جو مرتب ڪندڙ غلطيون واپس آڻيندو آهي:
  • منتقلي بيان. جيڪڏهن توهان واپسي واري بيان سان پنهنجو ڪوڊ ٽوڙيو، "واپسي = سچ" ​​کان پوءِ ڪجهه به نه ڪيو ويندو.
  • لامحدود لوپ - لامحدود لوپ کان پوءِ ڪو به ڪوڊ جيڪو توهان لکيو آهي ان تي عمل نه ڪيو ويندو يا ته سسٽم لوپ ايڪشن کي ٻيهر ورجائيندو رهندو. اهڙيء طرح، جڏهن توهان جي ڪوڊ کي بائيٽ ڪوڊ ۾ تبديل ڪندي، مرتب ڪندڙ هڪ ناقابل رسائي ڪوڊ غلطي موڪليندو.
توھان جي مدد ڪرڻ ۽ انھن مسئلن کي حل ڪرڻ لاءِ، اچو ته انھن تي وڏو ڪريون.

واپسي جا بيان

واپسي جو بيان منتقلي لفظي گروپ جو حصو آھي، مطلب ته اھو توھان جو طريقو ختم ڪري ٿو. اهو ڪمن کي الڳ ڪرڻ لاءِ مددگار آهي ۽ توهان جي ڪوڊ کي پڙهڻ لائق ۽ صاف رکڻ ۾ مدد ڪري ٿو. جڏهن ته، جيئن توهان واپسي = سچ کان پوءِ فنڪشن ۾ نوان بيان شامل نٿا ڪري سگهو، ڪي ورڊ کان پوءِ فنڪشن کي جاري رکڻ جي ڪوشش ڪرڻ سان توهان کي ”ناقابل رسائي ڪوڊ“ گڏ ڪرڻ واري غلطي ملندي. اچو ته "واپسي = سچ" ​​جي غلط استعمال جي مثال تي هڪ نظر وجهون ۽ هڪ مرتب ڪندڙ ان تي ڪيئن رد عمل ظاهر ڪري ٿو.
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

بيان جاري رکو

جاري رکو ھڪڙو لوپ ڪنٽرول لفظ آھي جيڪو عملن کي ورجائڻ لاءِ استعمال ڪيو ويندو آھي. جڏهن به توهان چاهيو ٿا ته لوپ جي عمل کي شروع کان شروع ڪرڻ لاءِ پنهنجو پاڻ تي، شامل ڪريو جاري رکو توهان جي ڪوڊ ۾. بيان ڊولپرز کي چونڊڻ ۾ مدد ڏيڻ لاءِ ڪارآمد آهي ته اهي لوپ جا ڪهڙا بيان ٻيهر ورجائڻ چاهين ٿا ۽ جن کي اهي ٻيهر ورجائڻ ۾ نه ٿا ڏين. جيتوڻيڪ جاري رکو استعمال ڪرڻ لاءِ هڪ سڌو لفظ آهي ، مڪمل سمجھ نه هجڻ جي ڪري اهو ڪيئن ڪم ڪري ٿو ڊولپرز کي ”ناقابل رسائي ڪوڊ“ جي جال ڏانهن. جيئن ته، هڪ جاري سان منهن ڏيڻ کان پوء، هڪ سسٽم لوپ کي ٻيهر ورجائيندو، لفظ ان جي پيروي ڪيل بيانن تائين پهچڻ جي قابل نه هوندا. چئو، توھان وٽ ھيٺ ڏنل ڪوڊ آھي:
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");
جيئن ته "توهان کي ڏسي خوش ٿيو" کان اڳ هڪ لامحدود لوپ آهي ، بيان ڪڏهن به عمل نه ڪندو ۽ هڪ ناقابل رسائي ڪوڊ غلطي واپس ڪندو.

نتيجو

ناقابل رسائي ڪوڊ کان بچڻ لاء، توهان کي پڪ ڪرڻ جي ضرورت آهي ته توهان جي سسٽم جي سڀني بيانن ۾ هڪ وهڪري آهي. گهڻو ڪري جاوا ناقابل رسائي ڪوڊ جا مسئلا ڪي ورڊس کي سنڀالڻ ۽ لوپس کي خراب طريقي سان منظم ڪرڻ سان آهي. ڏينهن جي آخر ۾، توهان جي ڪوڊ کي ٻه ڀيرا جانچڻ صرف ناقابل قابل ڪوڊ غلطين کان بچڻ جي ڪوشش ۽ صحيح طريقو آهي. توهان کي انهن کان به مايوس نه ٿيڻ گهرجي - فلو جاوا ڪوڊ ٺاهڻ جي عادت سالن جي تجربي ۽ مشق سان اچي ٿي. سو، اچو ته IDE کي مارو ۽ شاندار سافٽ ويئر پراڊڪٽس ٺاهڻ شروع ڪريون.
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION