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

Wie kann man IllegalArgumentException in einem Java-If-Bedingung automatisch behandeln?

每当您将不适当的参数传递给方法或构造函数时,都会引发IllegalArgumentException。这是运行时异常,因此在编译时无需处理此异常。

Beispiel

valueOf()java.sql.Date类的方法接受一个以JDBC转义格式yyyy- [m] m- [d] d表示日期的String,并将其转换为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("Geben Sie Ihr Geburtsdatum im JDBC-Fluchtkformat (yyyy-mm-dd) ");
      String dateString = sc.next();
      Date date = Date.valueOf(dateString);
      System.out.println("Gegebene date konvertiert in ein Objekt: "+date);
   }
}

Ausgaberesultat

Geben Sie Ihr Geburtsdatum im JDBC-Fluchtkformat (yyyy-mm-dd)
1989-09-26
Given date converted into an object: 1989-09-26

但是,如果您以其他任何格式传递date String,则此方法将引发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("Geben Sie Ihr Geburtsdatum im JDBC-Fluchtkformat (yyyy-mm-dd) ");
      String dateString = sc.next();
      Date date = Date.valueOf(dateString);
      System.out.println("Gegebene date konvertiert in ein Objekt: "+date);
   }
}

Laufzeitexception

Geben Sie Ihr Geburtsdatum im JDBC-Fluchtkformat (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)
In folgendem Java-Beispiel akzeptiert der Date-Konstruktor (tatsächlich veraltet) die

Beispiel

setPriority()Die Methoden der Thread-Klasse akzeptieren einen Integer-Wert, der die Priorität der aktuellen Thread darstellt und ihn setzt. Der Wert, der an diese Methode übergeben wird, sollte jedoch kleiner als die maximale Priorität des Threads sein, sonst wird diese Methode eine IllegalArgumentException auswerfenIllegalArgumentException

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

Laufzeitexception

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

Verarbeitung von IllegalArgumentException unter der Bedingung if

Wenn Sie Methoden verwenden, die IllegalArgumentException verursachen, können Sie aufgrund Ihrer Kenntnis der gültigen Parameter im Voraus mit if verwenden-condition-Einschränkung/Parameter überprüfen und Ausnahmen vermeiden.

Beispiel

import java.util.Scanner;
public class IllegalArgumentExample {
   public static void main(String args[]) {
      Thread thread = new Thread();
      System.out.println("Geben Sie den Prioritätswert der Thread ein: ");
      Scanner sc = new Scanner(System.in);
      int priority = sc.nextInt();
      if(priority<=Thread.MAX_PRIORITY) {
         thread.setPriority(priority);
      } else {
         System.out.println("Der Prioritätswert sollte kleiner als sein: ");+Thread.MAX_PRIORITY);
      }
   }
}

Ausgaberesultat

Geben Sie den Prioritätswert der Thread ein:
15
Der Prioritätswert sollte kleiner als sein: 10
Vielleicht gefällt dir auch