因为finally是一定会执行的代码,try语句执行到return的时候会停止执行return,而去执行finally语句,如果finally语句没有return语句就会继续执行try语句的return。
public class T {
public static int divide(int num1, int num2){
try {
int result = num1/num2;//2
return result;//3
}catch (Exception e){
System.out.println("出异常");//4
}finally {
System.out.println("finally执⾏了");//5
return -2;//6
}
}
public static void main(String [] args) {
int result = divide(25, 5);//1
System.out.println(result);//7
}
}
执行顺序为1->2->3(暂停执行)->5->6->7
如果finally中没有return,在finally执行完后会继续执行3语句。