1. try:检查是否有异常发生;
2. 如果有,则由catch来捕获;
3. 不管是否有异常发生,都会进入到finally里执行。
先记住下面的结论:
1. throw 后面的代码是不会执行的。
2. 不管是否有异常,都会执行finally。
3. 不管有多少个return, 只会执行finally里的return。
例1.
public class Demo { public static int doexception(){ try{ return 1; }catch(Exception e){ System.out.println("catch exception"); return 0; }finally{ System.out.println("finally ...."); } } public static void main(String args[]){ System.out.println("return value:"+doexception()); } }
输出结果:
finally .... return value:1
例2.
public class Demo { public static int doexception(){ try{ throw new Exception("aaa"); }catch(Exception e){ System.out.println("catch exception"); return 0; }finally{ System.out.println("finally ...."); } } public static void main(String args[]){ System.out.println("return value:"+doexception()); } }
输出结果:
catch exception finally .... return value:0
例3.
public class Demo { public static int doexception(){ try{ throw new Exception("aaa"); }catch(Exception e){ System.out.println("catch exception"); return 0; }finally{ System.out.println("finally ...."); return 1; } } public static void main(String args[]){ System.out.println("return value:"+doexception()); } }
输出结果:
catch exception finally .... return value:1