1. Java的异常机制主要依赖于 try、catch、finally、throw、throws 五个关键字。
2. Java异常分为两种: Checked异常 和 Runtime异常。
3. 如果执行try块里的业务逻辑代码时出现异常,系统自动生成一个异常对象,该异常对象被提交给Java运行时环境。这个过程被称为 抛出(throw)异常。
当Java运行时环境收到异常对象时,会寻找能处理该异常对象的catch块,如果找到合适的catch块,则把该异常对象交给该catch块处理。这个过程被称为 捕获(catch)异常。
注意:
不管程序代码块是否处于try块中,甚至包括catch块中的代码,只要执行该代码块时出现异常,系统总会自动生成一个异常对象。
如果程序没有为这段代码定义任何的catch块,则Java运行时环境无法找到处理该异常的catch块,程序就此退出。
异常类的继承体系
1. 当Java运行时环境接收到异常对象后,会依次判断该异常对象是否是catch块后异常类或其子类的实例。
如果是,Java运行时环境将调用该catch块来处理异常;
否则再次拿该异常对象和下一个catch块里的异常类进行比较。
2. 在通常情况下,如果try块被执行一次,则try块后只有一个catch块会被执行,绝不可能有多个catch块被执行。
除非在循环中使用了continue 开始下一次循环,下一次循环又重新运行try块,这才会导致多次catch块被执行。
3. 注意:
try 和 if 语句不一样。
try后的花括号 ({..})不可省略,即使try块中只有一行代码。
与之类似的是,catch块后的 {} 也不可以省略。
try 块里声明的变量是代码块内局部变量,它只在try块内有效
原文:http://www.cnblogs.com/FocusIN/p/6339876.html