http://www.verejava.com/?id=16992991138281
package com.exception2;
/**
注意:
1. 当异常发生的时候,程序会终止,其后面的代码不会执行.
2. 异常分为编译时异常和运行期异常
编译期异常必须用 try{}catch{}捕获,运行期异常可以不捕获
编译期异常从 Exception 继承, 运行期异常从RuntimeException 继承
异常的处理流程
注意:
1. try{}catch{} 代码块里的局部变量, 不能在其外访问. 所以如果要访问
最好在try catch 代码块外定义,然后再使用.
2. 异常执行流程 当异常发生时,首先系统产生一个异常实例, 如果没有try catch
代码块报异常终止执行, 如果遇到try catch 代码块, 系统会把异常实例跟
catch() 里面的异常对象依次从上往下进行匹配,如果匹配成功进入 catch{} 代码块. 否则
报异常终止执行.
3. Exception 是异常的根类, 根据多态原则,所以所有的异常实例都可以转为Exception
这样通过 Exception 就可以捕获到所有出现的异常.
4. finally{ }代码块的内容不管是否有异常 都会执行。 用来释放资源,比如
关闭文件,关闭数据库连接等。
5. finally{} 代码块的语句, 是在return 之前运行的.
*/
public class TestException {
public static void main(String[] args) {
int[] scores = { 60, 70, 80 };
try {
System.out.println(scores[3]);
System.out.println(3 / 0);
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("数组越界异常");
} catch (ArithmeticException e) {
System.out.println("数学异常");
} catch (Exception e) {
System.out.println("发生了异常");
}
}
}