finally自己由关键字finally和后面的finally块组成。
3种基本的方案:
1.如果执行了try块没有异常,则控制传递给finally块,即使try块通过return,break,或者continue于最后的语句退出,控制也是这样的传递的。
2.如果try总遇到了未捕获的异常,则控制传递给finally块,然后执行finally块之后,将是异常传播。
3.如果在try块内遇到了捕获的异常,则控制传递给相应的catch块,然后,执行catch块之后,在执行finally块
总结:
不管是否出现异常,finally子句总是在块完成之前执行。
代码:
import java.util.Scanner;public class DivideByTwo{
Scanner in=new Scanner(System.in);
int x;
System.out.println("please enter integer:");
try{
String oneline=in.nextLine();
x=Integer.ParseInt(oneLine);
System.out.println("half of x is"+(x/2));
}
catch(NumberFormatException e){
System.out.println(e);}
finally{
System.out.println("hello world!");
}
}
}