在C中,使用++i和之间有什么区别i++,哪些应该在for循环的增量块中使用?
当return;try块中存在try-finally执行时,我感到困惑.根据我的理解,finally块将始终执行,即在返回调用方法之前.在考虑以下简单代码时:
public class TryCatchTest {
public static void main(String[] args){
System.out.println(test());
}
static int test(){
int x = 1;
try{
return x;
}
finally{
x = x + 1;
}
}
}
Run Code Online (Sandbox Code Playgroud)
打印的结果实际上是1.这是否表示finally块未执行?任何人都可以帮助我吗?
我有以下代码.
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
System.out.println("Hardik::"+testFinnalyBlock());
}catch(Exception e){
System.out.println("hhh");
}
}
public static int testFinnalyBlock() throws Exception{
int a=5,b=10;
int sum=0;
try{
sum = a+b;
System.out.println("sum==="+sum);
return sum;
}catch(Exception e){
System.out.println("In Catch");
}finally{
sum = a+30;
System.out.println("sum==="+sum);
// return 1;
}
return 1;
}
Run Code Online (Sandbox Code Playgroud)
上面的输出代码为Hardik :: 15,虽然我认为它应该是Hardik :: 35.
谁能告诉我它是如何工作的.谢谢.