English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

كيفية معالجة IllegalArgumentException تلقائيًا داخل شرط if في Java؟

سيتم إطلاق IllegalArgumentException عند تقديم معامل غير مناسب للأسلوب أو المبنى

مثال

valueOf()أسلوب java.sql.Date يأخذ معاملًا يتخذ نموذج JDBC الهروبyyyy- [m] m- [d] dمثل الكلمة المكتوبة لتاريخ، واستبدالها بجسم java.sql.Date.

import java.sql.Date;
import java.util.Scanner;
public class IllegalArgumentExample {
   public static void main(String args[]) {
      Scanner sc = new Scanner(System.in);
      System.out.println("ادخل تاريخ ميلادك في نموذج JDBC الهروب (yyyy-mm-dd) ");
      String dateString = sc.next();
      Date date = Date.valueOf(dateString);
      System.out.println("Given date converted to an object: " + date);
   }
}

نتيجة الإخراج

أدخل تاريخ ميلادك في تنسيق JDBC الهروب (yyyy-mm-dd)
1989-09-26
تاريخ معادلة إلى عنصر: 1989-09-26

لكن، إذا قدمت أي شكل آخر لتاريخ الكلمة المكتوبة، فإن هذا الأسلوب سيؤدي إلى إطلاق IllegalArgumentException.

import java.sql.Date;
import java.util.Scanner;
public class IllegalArgumentExample {
   public static void main(String args[]) {
      Scanner sc = new Scanner(System.in);
      System.out.println("ادخل تاريخ ميلادك في نموذج JDBC الهروب (yyyy-mm-dd) ");
      String dateString = sc.next();
      Date date = Date.valueOf(dateString);
      System.out.println("Given date converted to an object: " + date);
   }
}

استثناء في التشغيل

أدخل تاريخ ميلادك في تنسيق JDBC الهروب (yyyy-mm-dd)
26-07-1989
Exception in thread "main" java.lang.IllegalArgumentException
   at java.sql.Date.valueOf(Unknown Source)
   at july_ipoindi.NextElementExample.main(NextElementExample.java:11)
في المثال التالي لـ Java، يقبل بناء Date (في الواقع معتير) المعلمات

مثال

setPriority()تقبل طريقة Thread من عدد كامل يمثل أولوية النواة وتضعه في النواة الحالية. ولكن يجب أن يكون القيمة المرسلة إلى هذه الطريقة أقل من أولوية النواة القصوى، وإلا ستقوم الطريقة بطرحIllegalArgumentException

public class IllegalArgumentExample {
   public static void main(String args[]) {
      Thread thread = new Thread();
      System.out.println(thread.MAX_PRIORITY);
      thread.setPriority(12);
   }
}

استثناء في التشغيل

10Exception in thread "main"
java.lang.IllegalArgumentException
   at java.lang.Thread.setPriority(Unknown Source)
   at july_ipoindi.NextElementExample.main(NextElementExample.java:6)

معالجة IllegalArgumentException تحت شرط if

عند استخدام الطريقة التي تسبب IllegalArgumentException، حيث تعرف المعلمات المقبولة، يمكنك استخدام شرط if مسبقًا للتحقق/تحديد المعلمات وتجنب حدوث استثناء.

مثال

import java.util.Scanner;
public class IllegalArgumentExample {
   public static void main(String args[]) {
      Thread thread = new Thread();
      System.out.println("ادخل قيمة مرتبة النواة: ");
      Scanner sc = new Scanner(System.in);
      int priority = sc.nextInt();
      if(priority<=Thread.MAX_PRIORITY) {
         thread.setPriority(priority);
      }
         System.out.println("القيمة المطلوبة للمرتبة يجب أن تكون أقل من: " + Thread.MAX_PRIORITY);
      }
   }
}

نتيجة الإخراج

ادخل قيمة مرتبة النواة:
15
القيمة المطلوبة للمرتبة يجب أن تكون أقل من: 10
توصيات لك