Java 中的 IllegalStateException 和 IllegalArgumentException 异常分别在什么情况下抛出?
IllegalStateException
当您在非法或不合适的时间调用方法时,会抛出此异常,从而生成一个 IlleagalStateException。
例如,ArrayList 类的 remove() 方法在调用 next() 或 previous 方法后删除最后一个元素。
- 在删除当前位置的元素后,您需要移动到下一个元素才能删除它,即每次调用 next() 方法,只能调用一次此 remove() 方法。
- 由于列表的初始位置(指针)将在第一个元素之前,因此在不调用 next 方法的情况下,您无法调用此方法。
如果您在其他情况下调用 remove() 方法,则会抛出 java.lang.IllegalStateException 异常。
示例
在以下示例中,我们尝试在移动到第一个元素之前,使用 remove() 方法删除 ArrayList 的元素。
import java.util.ArrayList;
import java.util.ListIterator;
public class NextElementExample{
public static void main(String args[]) {
//Instantiating an ArrayList object
ArrayList<String> list = new ArrayList<String>();
//populating the ArrayList
list.add("apples");
list.add("mangoes");
//Getting the Iterator object of the ArrayList
ListIterator<String> it = list.listIterator();
//Removing the element without moving to first position
it.remove();
}
}运行时异常
Exception in thread "main" java.lang.IllegalStateException at java.util.ArrayList$Itr.remove(Unknown Source) at MyPackage.NextElementExample.main(NextElementExample.java:17)
IllegalArgumentException − 每当您向方法或构造函数传递不合适的参数时,都会抛出 IllegalArgumentException 异常。
示例
java.sql.Date 类的 valueOf() 方法接受一个表示 JDBC 转义格式 yyyy-[m]m-[d]d 中日期的字符串,并将其转换为 java.sql.Date 对象。但是,如果您以任何其他格式传递日期字符串,则此方法会抛出 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("Enter your date of birth in JDBC escape format (yyyy-mm-dd) ");
String dateString = sc.next();
Date date = Date.valueOf(dateString);
System.out.println("Given date converted int to an object: "+date);
}
}运行时异常
Enter your date of birth in JDBC escape format (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
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP