我把原因注释到代码里了,你看下- class test06 {
- public static int demo() {
- int a = 2;
- try {
- System.out.println("try的 a:" + a);
- return a;// 需要被检测的代码块;这条语句的执行在finally{}语句块的后边
- }
- finally // 一定会执行的语句
- {
- a = 9;
- System.out.println("finally的 a:" + a);
- //return a; //如果这里执行了return语句,程序就结束了,不会再执行try{}块中的return语句
- //要想得到你要的结果只能将这个return语句注释掉,才能执行到try{}块里边的return语句
- }
- }
- public static void main(String[] args) {
- System.out.println("demo:" + demo());// 调用demo,如果打印结果为1证明
- // finally不能改变try里面的返回值
- }
- }
复制代码 |