English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
قراءة الإدخال وإجراء الحسابات المطلوبة في الطريقة. احتفظ بالكود الذي يؤدي إلى الاستثناء داخل دائرة try، وأمسك بجميع الاستثناءات المحتملة في دائرة catch. في كل دائرة catch، اعرض الرسالة المناسبة، ثم دعو الطريقة مرة أخرى.
في المثال التالي، لدينا مجموعة تحتوي على 5 عناصر، ونقبل من المستخدم اثنين من الأعداد التمثيلية لمواضع هذا المجموع، ونقوم بتنفيذ عملية التقسيم. إذا كان العدد التمثيلي للموضع أكبر من 5 (طول الاستثناء)، فإن استثناء ArrayIndexOutOfBoundsException يحدث، وإذا كان الموضع المختار للمقسوم عليه هو 4 (أي 0)، فإن استثناء ArithmeticException يحدث.
نحن نقرأ القيم ونحسب النتيجة بواسطة طريقة ثابتة. نحن نمسك بأثنين من الاستثناءات في كل دائرة مكتملة، وندعو هذه الطريقة بعد عرض الرسالة المناسبة في كل دائرة.
import java.util.Arrays; import java.util.Scanner; public class LoopBack { int[] arr = {10, 20, 30, 2, 0, 8}; public static void getInputs(int[] arr){ Scanner sc = new Scanner(System.in); System.out.println("اختر العدد المطلق والمقسوم عليه (لا يكون 0) من هذا المجموع (ادخل المواضع 0 إلى 5)"); int a = sc.nextInt(); int b = sc.nextInt(); try { int result = (arr[a]) / (arr[b]); System.out.println("نتيجة " + arr[a] + "/" + arr[b] + ": " + result); catch(ArrayIndexOutOfBoundsException e) { System.out.println("خطأ: لقد اخترت موضعاً ليس موجوداً في المجموعة: حاول مجدداً"); getInputs(arr); }catch(ArithmeticException e) { System.out.println("خطأ: يجب ألا يكون المقامش صفراً: حاول مجدداً"); getInputs(arr); } } public static void main(String [] args) { LoopBack obj = new LoopBack(); System.out.println("المجموعة: " + Arrays.toString(obj.arr)); getInputs(obj.arr); } }
نتيجة الخروج
المجموعة: [10, 20, 30, 2, 0, 8] اختر الموزع والمقامش (لا يكون صفرا) من هذا المجموعة (ادخل المواضع من 0 إلى 5) 14 24 خطأ: لقد اخترت موضعاً ليس موجوداً في المجموعة: حاول مجدداً اختر الموزع والمقامش (لا يكون صفرا) من هذا المجموعة (ادخل المواضع من 0 إلى 5) 3 4 خطأ: يجب ألا يكون المقامش صفراً: حاول مجدداً اختر الموزع والمقامش (لا يكون صفرا) من هذا المجموعة (ادخل المواضع من 0 إلى 5) 0 3 نتيجة 10/2: 5