import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class Test2 {
public static void main(String[] args) {
for(int n=0;n<=5;n++)trycatchtest(n);
for(int n=0;n<=5;n++) {
try {
throwstest(n);
} catch (Exception e) {
e.printStackTrace();
}
}
}
public static void trycatchtest(int n) {
FileInputStream fin=null;
try {
switch (n) {
case 0://产生数组访问越界异常
int[] a = new int[5];
System.out.println(a[6]);
break;
case 1://空点异常
int[] b = null;
System.out.println(b.length);
break;
case 2://IOException异常
String filename = "C:\123.txt";
fin = new FileInputStream(filename);
break;
case 3://数据格式异常
String s = "123,4";
double x = Double.parseDouble(s);
System.out.println("x=" + x);
break;
default://其他异常
if (n > 3) return;
}
}catch(ArrayIndexOutOfBoundsException e) {
System.out.println(e.getMessage());
e.printStackTrace();
}catch(NullPointerException e) {
System.out.println(e.getMessage());
e.printStackTrace();
}catch(FileNotFoundException e) {
System.out.println(e.getMessage());
e.printStackTrace();
}catch(NumberFormatException e) {
System.out.println(e.getMessage());
e.printStackTrace();
}catch (Exception e){
System.out.println(e.getMessage());
e.printStackTrace();
}
finally{
if(fin!=null)
try{
fin.close();
}catch(IOException e){
e.printStackTrace();
}
System.out.println("finally块运行");
}
System.out.println("方法运行正常结束");
}
public static void throwstest(int n) throws Exception{
FileInputStream fin=null;
switch(n){
case 0://产生数组访问越界异常
int[] a=new int[5];
System.out.println(a[6]);
break;
case 1://空点异常
int[] b=null;
System.out.println(b.length);
break;
case 2://IOException异常
String filename="C:\123.txt";
fin=new FileInputStream(filename);
break;
case 3://数据格式异常
String s="123,4";
double x=Double.parseDouble(s);
System.out.println("x="+x);
break;
default://其他异常
if(n>3)return;
}
System.out.println("方法运行正常结束");
}
}