English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
每当您将不适当的参数传递给方法或构造函数时,都会引发IllegalArgumentException。这是运行时异常,因此在编译时无需处理此异常。
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); } }
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
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); } }
10Exception in thread "main" java.lang.IllegalArgumentException at java.lang.Thread.setPriority(Unknown Source) at july_ipoindi.NextElementExample.main(NextElementExample.java:6)
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.
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