java - 关于try catch语句的java问题finally
问题描述
这是java编写的代码。
public class work2{
public static void main(String args[]) {
try {
int x = 0;
for (x=1; x<4; x++);
System.out.println(x);
} catch(Exception e) {}
finally {
System.out.println("Error");
}
}
}
输出是
4 错误
你能解释一下为什么输出看起来像这样吗?
解决方案
永远记住在 try catch 块中——“最终总是运行”,无论是否有异常。现在来到你的代码。在 try 块内,您有以下行:
try {
int x = 0;
for (x=1; x<4; x++);
System.out.println(x);
}
这里的 for 循环以分号结束,这意味着它没有主体。现在,for 循环将从 i=1 运行到 i<4,然后以 i 的值为 4 退出循环。
现在下一行是打印语句,它将 i 的当前值打印为 4。
之后,控件转到 finally 块并打印“错误”
这就是您获得输出的方式
4
Error
推荐阅读
- javascript - 任何人都可以帮助我解决 var 在 javascript 中的这种奇怪行为吗?
- python - 使用 OSMnx 到最近点的旅行时间图
- reactjs - 如何在没有 ThemeProvider 的情况下使用 MUI v5 makeStyles?
- angular - 如何在 Angular 中使用 BCrypt / Bcryptjs?
- algorithm - 如何对哈希表中的键进行哈希处理
- python - 为什么 Z3 将小实数“四舍五入”为 1.0/0.0?
- c++ - 未在此范围内声明的变量中的错误问题
- python - python中groupby的代码优化
- xml - Scala XML解析多个字段
- java - 如何在运行时根据用户输入参数动态创建 bean 和自动装配