常见的5个异常
① InputMismatchException 输入不匹配异常
由
Scanner
抛出,表示Scanner
到的令牌与预期类型的模式不匹配,或令牌超出预期类型的范围。
try {
System.out.print("请输入非int类型数据:");
int a = input.nextInt();
}catch (InputMismatchException e){
System.out.println("输入不匹配异常\n");
}
② ArithmeticException 算术异常
抛出异常算术条件时抛出。 例如,“除以零”的整数会抛出此类的一个实例。
try {
System.out.println("正在计算5/0");
int a = 5;
a /= 0;
}catch (ArithmeticException e){
System.out.println("算术异常\n");
}
③ ArrayIndexOutOfBoundsException 数组索引越界异常
抛出以表示使用非法索引访问数组。 索引为负数或大于或等于数组的大小。
try {
System.out.println("数组长度为3,找到数组下标3的内容");
int[] arr = new int[3];
int index = 3;
arr[index] = 0;
}catch (ArrayIndexOutOfBoundsException e){
System.out.println("数组索引越界异常\n");
}
④ NullPointerException 空指针异常
当应用程序尝试在需要对象的情况下使用
null
时抛出。这些包括:
- 调用一个
null
对象的实例方法。- 访问或修改
null
对象的字段。- 取
null
的长度,好像是一个数组。- 访问或修改的时隙
null
就好像它是一个数组。- 投掷
null
好像是一个Throwable
价值。 应用程序应该抛出此类的实例以指示
null
对象的其他非法使用。
try {
System.out.println("数组为null,输出数组长度");
String str = null;
System.out.println(str.length());
}catch (NullPointerException e){
System.out.println("空指针异常\n");
}
⑤ FileNotFoundException 文件不存在异常
指示尝试打开由指定路径名表示的文件失败。
此异常将被抛出
FileInputStream
,FileOutputStream
和RandomAccessFile
构造函数用指定的路径名的文件不存在。 如果文件确实存在但由于某种原因存在,这些构造函数也将被抛出,例如当尝试打开只读文件进行写入时。
try {
System.out.println("正在导入文件,路径为(并不实际存在):D:\\hello.txt");
FileInputStream file = new FileInputStream("D:\\hello.txt");
}catch (FileNotFoundException e){
System.out.println("文件不存在异常\n");
}