异常
异常是指程序运行当中出现的不期而至的情况。在程序运行期间,异常会影响正常程序的运行流程。
异常的分类
检查性异常
最具代表的时用户在错误或者问题的时候发生的,比如打开一个不存在的文件等
运行时异常
运行时异常是容易被忽略的异常,运行时可以忽略
错误ERROR
错误不是异常,而是摆脱控制的问题。在代码中常常会发生。比如栈溢出等。
异常处理机制
捕获异常
try – catch – finally
try{ }
里写入包含异常的代码,catch(){ }
中写入捕获的异常
public static void main(String[] args){
try { //包含异常的代码
int A = (int) Math.random();
System.out.println("A: " + A);
int B = (int) Math.random();
System.out.println("B: " + B);
int C = A/B;
}catch(ArithmeticException EX){ //捕获异常 括号内捕获的异常要和try中异常相同
System.out.println(EX); //显示异常
}
}
输出结果:
如果要使用catch(){ }来捕获两个异常,catch则会捕获第一个匹配到的异常
public static void main(String[] args){
try {
int A = (int) Math.random();
System.out.println("A: " + A);
int B = (int) Math.random();
System.out.println("B: " + B);
int C = A/B; //除数为零异常
int[] IA = {1,2,3,4,5};
System.out.println(IA[5]); //数组下标越界异常
}catch(ArithmeticException AE){ //捕获除数为零异常
System.out.println(AE);
}catch (ArrayIndexOutOfBoundsException AIOOE){ //捕获数组下标越界异常
System.out.println(AIOOE);
}
运行结果:
finally{ }
的作用是无论是否发生异常,都会执行
public static void main(String[] args){
try {
int[] IA = {1,2,3,4,5};
}catch(Exception A){
System.out.println(A);
}finally {
System.out.println("finally");
}
}
运行结果: