一些基础知识:
1.try代码段包含可能产生例外的代码;
2.try代码段后跟有一个或多个代码段;
3.每个catch代码段声明其能处理的一种特定的异常并提供处理的方法;
4.当异常发生时,程序会终止当前的流程,根据获取异常的类型去执行相应的catch代码段,有多个符合条件的catch时,只执行第一个;
5.finally段的代码无论是否发生异常都会执行。
6.在一个try语句块中,基类异常的捕获语句不可以写在子类异常捕获语句的上面。
看一个例子:
/** * @author Lansine * */ public class T1 { /** * @param args */ public static void main(String[] args) { String s = "1"; try { s = "2"; System.out.println(s); if (s == "2") throw new Exception("h"); } catch (Exception e) { s = "3"; System.out.println(s); } finally { s = "4"; System.out.println(s); } s = "5"; System.out.println(s); } } |
输出的结果是2,3,4,5 (这里的逗号只用于显示)。上述语句非常清楚,但是在上述结构中加上return,就变得有些复杂了,如
/** * @author Lansine * */ public class T2 { /** * @param args */ public static void main(String[] args) { String s = "1"; try { s = "2"; System.out.println(s); return; } catch (Exception e) { s = "3"; System.out.println(s); } finally { s = "4"; System.out.println(s); } s = "5"; System.out.println(s); } } |