CodeGym /جاوا بلاگ /Random-SD /جاوا اڇلائي استثنا
John Squirrels
سطح
San Francisco

جاوا اڇلائي استثنا

گروپ ۾ شايع ٿيل
اسان جتي به وڃون ٿا، غير متوقع واقعا اسان جي انتظار ۾ آهن. زلزلا، ماڻهن جا غير منطقي ڪارناما، meteorites... يا ڪجهه سادو - هڪ روشني بلب سڙي، هڪ بينڪ ڪارڊ demagnetizes، هڪ گئسولين گيج ڀڃي. اسان غير متوقع واقعن کي غير فعال نٿا ڪري سگهون، پر اسان گهٽ ۾ گهٽ جزوي طور تي تيار ٿي سگهون ٿا. اهو آهي، اسان کي انهن سان معاملو ڪرڻ لاء ڪجهه ميڪانيزم تيار ڪرڻ گهرجي. پروگرامنگ جي دنيا ۾، خاص طور تي جاوا ٻولي ۾، واقعا جيڪي پروگرام کي عام طور تي ڪم ڪرڻ کان روڪيندا آهن، انهن کي استثنا سڏيو ويندو آهي، ۽ پروگرام جي حادثن کي روڪڻ لاءِ ميکانيزم کي Exception handling چئبو آهي. تنهن ڪري، جڏهن هڪ پروگرام ۾ هڪ غير متوقع واقعو ٿئي ٿي، جهڙوڪ صفر طرفان ڊويزن، اهو هڪ استثنا "ڇڏڻ" گهرجي. استثنا سنڀالڻ جاوا پروگرامنگ جو هڪ اهم پاسو آهي جيڪو ڊولپرز کي مدد ڪري ٿو غلطين ۽ استثنان کي منظم ڪرڻ ۾ جيڪي پروگرام جي عمل دوران ٿي سگهن ٿيون. هن آرٽيڪل ۾، اسان هڪ بنيادي مفهوم تي ڌيان ڏينداسين استثنا هٿ ڪرڻ جي: جاوا اڇلائي لفظ ۽ ان کي ڪيئن استعمال ڪجي استثنا اڇلائڻ لاءِ.

جاوا ۾ هڪ استثنا ڇا آهي؟

هڪ استثنا هڪ ​​واقعو آهي جيڪو پروگرام جي عمل جي دوران ٿئي ٿو جيڪو پروگرام جي هدايتن جي عام وهڪري کي روڪي ٿو. جڏهن هڪ استثنا ٿئي ٿي، پروگرام جي عمل کي روڪيو ويو آهي، ۽ غلطي پيغام کنسول تي ڏيکاريل آهي. جاوا ۾، ٻه قسم جا استثنا آهن: چيڪ ٿيل ۽ اڻ چيڪ ٿيل. چيڪ ٿيل استثنان کي گڏ ڪرڻ وقت چيڪ ڪيو ويو آهي، ۽ مرتب ڪندڙ کي يقيني بڻائي ٿو ته اهي پڪڙيا ويا آهن يا ڪالنگ جي طريقي سان اعلان ڪيو ويو آهي. ٻئي طرف، اڻ چيڪ ٿيل استثناء کي گڏ ڪرڻ وقت چيڪ نه ڪيو ويو آهي، ۽ اهي پڪڙي سگهجن ٿيون يا اڻڄاتل ڇڏيا وڃن. هتي ڪوڊ جو هڪ مثال آهي جنهن ۾ هڪ غلطي ٿي سگهي ٿي، پر مرتب ڪندڙ ان کي ڇڏي ٿو.
public class Factorial {
   public static long getFactorial(final int number) {
           long fact = 1;
           for (int i = 1; i <= number; i++) {
               fact = fact * i;
           }
           return fact;
   }

   public static void main(String[] args) {
       System.out.println(getFactorial(-5));
       System.out.println(getFactorial(21));

   }

}
هتي پروگرام جي پيداوار آهي:
1 -4249290049419214848
پروگرام صحيح طور تي نڪتو، پر غلط نتيجو پيدا ڪيو. پهرين صورت ۾، ڇاڪاڻ ته فنڪشن دليل منفي هو، ۽ فيڪٽري منفي نمبرن لاء ڪم نٿو ڪري. ٻئين صورت ۾، نتيجو غلط هو، ڇاڪاڻ ته اهو انگ تمام وڏو آهي ته ان جي حقيقت کي ڊگهي قسم جي حد ۾ شمار ڪرڻ لاء. هتي هڪ ٻيو مثال آهي. اچو ته هڪ پروگرام لکون جنهن ۾ هڪ عدد کي ٻئي نمبر سان ورهائينداسين.
public class DivisionExample {

       public static void main(String[] args) {
           int a = 10;
           int b = 0;
           int result = divide(a, b);
           System.out.println(result);
       }

       public static int divide(int a, int b) {
           return a / b;
       }
}
هن مثال ۾، هڪ ArithmeticException اڇلايو ويندو آهي ڇاڪاڻ ته متغير ب صفر آهي. بهرحال، هي غلطي هٿ نه ڪئي وئي آهي، تنهنڪري پروگرام هڪ غلط حيثيت سان نڪرندو آهي.

جاوا ۾ هڪ استثنا ڪيئن اڇلايو

جاوا ۾، استثنا پڻ شيون آهن، تنهنڪري هڪ استثنا اڇلايو ويندو آهي جهڙوڪ نئين استثنا اعتراض ٺاهي وئي. هڪ استثنا اڇلائي بيان استعمال ڪندي پروگرام ۾ اڇلائي وئي آهي. عام طور تي، اهي ٻه عمل (اعتراض ٺاهڻ ۽ هڪ استثنا اڇلائڻ) هڪ ۾ گڏيل آهن:
throw new Exception("error…");
جاوا ۾ اڇلائي لفظ استعمال ڪيو ويندو آهي استثنا اڇلائڻ لاءِ هڪ طريقو يا ڪوڊ جي بلاڪ جڏهن ڪا غلطي يا غير معمولي حالت ٿئي ٿي ته پروگرام رن ٽائم تي سنڀالي نٿو سگهي . پروگرام جي وهڪري کي تمام ويجھي ڪيچ بلاڪ ڏانهن منتقل ڪيو ويو آهي. هي بلاڪ استثنا کي منظم ڪري سگهي ٿو.

مثال طور 'ڇڏڻ' لفظ جي استعمال جو

جاوا ۾ اڇلائي لفظ جي ڪارڪردگي کي واضع ڪرڻ لاء ، اچو ته هڪ مثال وٺو. اچو ته هڪ انگ جي فيڪٽري کي ڳڻڻ جو طريقو لکون. جيڪڏهن نمبر منفي آهي، اهو نه ٿو ڪري سگهجي، تنهنڪري هڪ استثنا اڇلايو وڃي. اهڙي طرح، جيڪڏهن انگ تمام وڏو آهي، فڪري نتيجو هڪ ڊگهي قسم جي وڌ ۾ وڌ سائيز کان وڌي ويندو، ۽ ٻيو استثنا اڇلايو ويندو. هتي اسان وٽ هڪ طريقي سان عمل درآمد آهي:
public Class Factorial {

public static long getFactorial(final int number) {
   if ((number >= 0) && (number < 21)) {
       long fact = 1;
       for (int i = 1; i <= number; i++) {
           fact = fact * i;
       }
       return fact;
   } else {

//throw new exception here
       throw new IllegalArgumentException("THe argument isn't legal");
   }
}

 public static void main(String[] args) {
       System.out.println(getFactorial(-5));
       System.out.println(getFactorial(21));

   }
}
هن مثال ۾، جيڪڏهن انگ جو قدر منفي آهي، اڇلائي لفظ استعمال ڪيو ويندو آهي هڪ مثال اڇلائڻ لاءِ IllegalArgumentException ڪلاس. جيڪڏهن توهان پروگرام هلائيندا آهيو، "دليل قانوني ناهي" پيغام کنسول تي ڏيکاري ويندي. پروگرام جي عمل کي روڪيو ويندو.

وڌيڪ غلطيون نه آهن: هڪ استثنا مثال کي پڪڙڻ

ھاڻي اچو ته ٻئي مثال کي ياد ڪريون، تقسيم صفر سان، ۽ ان کي استثنا سان ھٿ ڪرڻ سان.
public class DivisionExample {

    public static void main(String[] args) {
        int a = 10;
        int b = 0;
        try {
            int result = divide(a, b);
            System.out.println(result);
        } catch (ArithmeticException e) {
            System.out.println("Error: division by zero");
        }
    }

    public static int divide(int a, int b) {
        return a / b;
    }
}
هن مثال ۾، اسان شامل ڪيو آهي هڪ ڪوشش-ڪيچ تعمير کي سنڀالڻ لاءِ ڊويزن-جي-صفر استثنا. مختصر طور تي ڳالهائڻ، try-catch-finally هڪ جاوا پروگرامنگ ٻولي جي تعمير آهي جيڪا توهان کي استثناء کي سنڀالڻ ۽ ڪوڊ تي عمل ڪرڻ جي اجازت ڏئي ٿي، قطع نظر ته ڪو استثنا واقع ٿيو يا نه. ڪوشش-پڪڙ-آخر ۾ ٽن بلاڪن تي مشتمل آهي:
  • ڪوشش بلاڪ . ممڪن طور تي خطرناڪ ڪوڊ هتي جاري ڪيو پيو وڃي. اهو ڪوڊ آهي جيڪو هڪ استثنا اڇلائي سگهي ٿو. جيڪڏهن هڪ استثنا هڪ ​​ڪوشش بلاڪ جي اندر ٿئي ٿي، انهي بلاڪ ۾ ڪوڊ جي عمل کي ختم ڪيو ويندو آهي، ۽ ڪنٽرول کي ڪيچ بلاڪ ڏانهن منتقل ڪيو ويندو آهي.
  • پڪڙڻ وارو بلاڪ. هتي اڇلائي استثنا هٿ ڪيو ويو آهي. ڪيچ بلاڪ ۾ ، توھان وضاحت ڪري سگھو ٿا ته ڪھڙي استثنا کي پڪڙيو وڃي ۽ ڪھڙي منطق تي عمل ڪيو وڃي جڏھن اھو پڪڙيو وڃي.
  • آخرڪار بلاڪ . اهو عمل ڪيو ويندو آهي قطع نظر ته هڪ استثنا واقع ٿيو يا نه. آخرڪار بلاڪ استعمال ڪيو ويندو آهي، مثال طور، وسيلن کي ڇڏڻ لاء (جهڙوڪ فائل يا ساکٽ کي بند ڪرڻ) جيڪي مختص ڪيا ويا بلاڪ جي ڪوشش ۾. توھان ھن بلاڪ کي ختم ڪري سگھو ٿا.
ڪوشش -ڪيچ-آخر ۾ تعمير غير معمولي حالتن جي صورت ۾ پروگرام جي عمل تي وڌيڪ صحيح ڪنٽرول جي اجازت ڏئي ٿي ۽ غلطي جي صورت ۾ پروگرام جي غير متوقع ختم ٿيڻ کي روڪڻ ۾ مدد ڪري ٿي. هاڻي اچو ته اسان جي مثال ڏانهن واپس وڃو. جيڪڏهن ورهائڻ واري طريقي جي دوران صفر سان تقسيم ٿئي ٿي، هڪ ArithmeticException اڇلايو ويندو، جيڪو ڪيچ بلاڪ طرفان پڪڙيو ويندو آهي. ڪيچ بلاڪ ۾ ، اسان صرف ڪنسول ڏانهن هڪ غلطي پيغام پرنٽ ڪندا آهيون. جيڪڏهن ڪابه استثنا نه ٿيندي، پروگرام ان جي عمل کي جاري رکندو.

لفظ اڇلائي ٿو

اڇلائي لفظ استعمال ڪيو ويندو آهي طريقي جي دستخط ۾ . جيڪڏهن ائين آهي، ان جو مطلب اهو آهي ته هڪ استثنا طريقي سان اڇلائي رهيو آهي. اهو ڪال اسٽيڪ تي استثناء جي پروپيگنڊا ڪري سگهي ٿو ۽ ظاهر ڪري ٿو ته استثناء کي موجوده طريقي سان هٿ ڪرڻ جي ضرورت ناهي. جاوا ۾، "throws" پڻ استعمال ڪري سگھجن ٿيون ھڪڙي پروگرام ۾ بيان ڪيل ڪسٽم استثناء جو حوالو ڏيڻ لاء. مثال طور، ھڪڙو طريقو ٻن انگن جي ڊويزن کي انجام ڏئي سگھي ٿو پر ھڪڙو غير قانوني آرگومينٽ ايڪسپشن اڇلائي سگھي ٿو جيڪڏھن ٻيو دليل صفر آھي:
public static double divide(double a, double b) throws IllegalArgumentException {
    if (b == 0) {
        throw new IllegalArgumentException("Division by zero is not allowed");
    }
    return a / b;
}
اهو طريقو استعمال ڪري ٿو اڇلائي لفظ کي ظاهر ڪرڻ لاءِ ته هڪ غير قانوني آرگومينٽ ايڪسپيشن اڇلائي سگهجي ٿو جيڪڏهن ٻيو دليل نال آهي. جيڪڏهن اهڙي استثنا ٿئي ٿي جڏهن طريقي سان عمل ڪندي، اهو پروسيسنگ لاء ڪالنگ جي طريقي ڏانهن منتقل ڪيو ويندو. طريقو ڪال مثال:
public static void main(String[] args) {
    double result = 0;
    try {
        result = divide(10, 0);
    } catch (IllegalArgumentException e) {
        System.out.println("Error: " + e.getMessage());
    }
    System.out.println("Result: " + result);
}
هن مثال ۾، divide() طريقو کي دليلن 10 ۽ 0 سان سڏيو ويندو آهي، جيڪو هڪ غيرقانوني آرگومينٽ ايڪسپشن اڇلائي ڇڏيندو، ڇاڪاڻ ته تقسيم صفر کان ناممڪن آهي. استثنا هڪ ​​ڪوشش-ڪيچ بلاڪ طرفان پڪڙيو ويندو، ۽ هڪ غلطي پيغام ڏيکاري ويندي. پروگرام جي نتيجي ۾ صفر جي قيمت ٿيندي ڇو ته استثنا تقسيم () طريقي جي عمل کي ختم ڪري ٿو.
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION