try–catch理解:
当需要处理catch()处理异常时,没有继承关系的两个异常处理顺序随意,具有继承关系的两个异常先处理子异常,在处理父异常,任意一个catch()执行后,同级catch()均不在执行。
此时代码块 1 2可以互换,但代码块3必须在代码块2后面,此时路径有问题,报异常文件不存在;
package com.ExceptionTest;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
/**
* @author xujun
* @date2021/10/16 11:08
* @Description TODO
* apiNote
*/
public class code03 {
public static void main(String[] args) {
FileInputStream st;
{
try {
//FileNotFoundException
st = new FileInputStream("G:\\src\\tests");
//ArrayIndexOutOfBoundsException
int []x=new int[5];
for(int i=0;i<6;i++){
System.out.println(x[i]);
}
}catch (ArrayIndexOutOfBoundsException e){//1
System.out.println("ArrayIndexOutOfBoundsException");
} catch (FileNotFoundException e) {//2
System.out.println("FileNotFoundException");
}catch ( IOException e){//3
System.out.println("IOException ");
}
}
}
}
代码块3在2前面报错:
代码块1在最后面,且此时错误为数组越界:
package com.ExceptionTest;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class code03 {
public static void main(String[] args) {
FileInputStream st;
{
try {
//FileNotFoundException
st = new FileInputStream("G:\\src\\tests");
//ArrayIndexOutOfBoundsException
int []x=new int[5];
for(int i=0;i<6;i++){
System.out.println(x[i]);
}
} catch (FileNotFoundException e) {//2
System.out.println("FileNotFoundException");
}catch ( IOException e){//3
System.out.println("IOException ");
}catch (ArrayIndexOutOfBoundsException e){//1
System.out.println("ArrayIndexOutOfBoundsException");
}
}
}
}
版权声明:本文为m0_49665279原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。