一、
//1、如果try中出现多个异常对象,那么可以使用多个catch来进行异常处理
//2、如果try产生了异常,那么就会执行catch中的异常处理逻辑,执行完catch逻辑会继续执行后续代码。
//3、finally关键字
//finally 不能单独使用,必须和try一起使用
//fnally一般用于资源释放,无论程序有无异常,都要释放
二、
/*多个异常如何处理
- 1.分别处理
- 2.一次捕获,多次处理
- 3.一次捕获,一次处理
*/
三、代码练习
package Demo01;
import java.io.IOException;
//1、如果try中出现多个异常对象,那么可以使用多个catch来进行异常处理
//2、如果try产生了异常,那么就会执行catch中的异常处理逻辑,执行完catch逻辑会继续执行后续代码。
//3、finally关键字
//finally 不能单独使用,必须和try一起使用
//fnally一般用于资源释放,无论程序有无异常,都要释放
public class Demo01TryCatch {
public static void main(String[] args) throws IOException{
try {
readFile("D:\\a.txt");
} catch (IOException e) {
//System.out.println("catch 文件后缀发生错误");
//System.out.println(e.getMessage());//返回简短的消息
//System.out.println(e.toString());//返回详细异常消息包含异常类型
//System.out.println(e);
e.printStackTrace();
}
finally {
System.out.println("资源释放");
}
System.out.println("后续代码,花落知多少");
}
public static void readFile(String fileName) throws IOException {
if(!fileName.endsWith(".txt")) {
throw new IOException("李白乘舟将欲行,文件名后缀不对");
}
System.out.println("没有发生异常,桃花潭水深千尺");
}
}
package Demo01;
import java.util.List;
public class Demo02Exception {
public static void main(String[] args) {
/*多个异常如何处理
* 1.分别处理
* 2.一次捕获,多次处理
* 3.一次捕获,一次处理
/
/
* try {
int[] arr1=null;
int[] arr= {1,2,3};
System.out.println(arr[3]);
}
try {
int[] arr1=null;
int[] arr= {1,2,3};
System.out.println(arr[3]);
* }catch (ArrayIndexOutOfBoundsException e) {
System.out.println(e);
}*/
try {
int[] arr1=null;
int[] arr= {1,2,3};
//System.out.println(arr[3]);
List<Integer> list=List.of(1,2,3);
System.out.println(list.get(3));
}catch(ArrayIndexOutOfBoundsException e) {
e.printStackTrace();
}catch(IndexOutOfBoundsException e) {
e.printStackTrace();
}catch(NullPointerException e) {
e.printStackTrace();
}
}
}
学号:2020080605015