try and Finally giving exception with no return statement , but there is no exception when return statement is written in method(try 和 finally 给出没有返回语句的异常,但是在方法中写入返回语句时没有异常)
问题描述
请解释为什么异常出现在第一个程序中,但没有出现在第二个程序中.
Please explain why Exception comes in first program but not in second program.
1) read 方法中没有返回语句
1) without return statement in read method
class Example
{
public static void read()
{
try
{
int i = 9/0;
}
finally
{
System.out.println("This proogram is giving exception");
}
}
public static void main(String[] fel)
{
read();
}
}
2)read方法中带有return语句
2)with return statement in read method
class Example
{
public static void read()
{
try
{
int i = 9/0;
}
finally
{
System.out.println("This proogram is not giving exception");
return;
}
}
public static void main(String[] fel)
{
read();
}
}
推荐答案
分支语句(return ,goto )不能在finally内部使用,因为执行这样的语句会使finally之前执行的其他指令无效.
Branching statements(return ,goto ) should no be used inside finally because execution of such statement nullifies other instructions which are executed before finally.
Java 语言规范 说:如果 try 块的执行由于任何其他原因 R 突然完成,则执行 finally 块,然后有一个选择:
The Java Language Specification says : If execution of the try block completes abruptly for any other reason R, then the finally block is executed, and then there is a choice:
- 如果 finally 块正常完成,则由于原因 R,try 语句会突然完成.
- 如果 finally 块由于原因 S 突然完成,则 try 语句由于原因 S 突然完成(并且原因 R 被丢弃).
注意 - finally 块中的 return 语句将导致 try 或 catch 块中可能引发的任何异常被丢弃.
Note - A return statement inside a finally block will cause any exception that might be thrown in the try or catch block to be discarded.
这篇关于try 和 finally 给出没有返回语句的异常,但是在方法中写入返回语句时没有异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:try 和 finally 给出没有返回语句的异常,但是在方法中写入返回语句时没有异常
基础教程推荐
- FirebaseListAdapter 不推送聊天应用程序的单个项目 - Firebase-Ui 3.1 2022-01-01
- 设置 bean 时出现 Nullpointerexception 2022-01-01
- 无法使用修饰符“public final"访问 java.util.Ha 2022-01-01
- Java:带有char数组的println给出乱码 2022-01-01
- 降序排序:Java Map 2022-01-01
- 在 Libgdx 中处理屏幕的正确方法 2022-01-01
- “未找到匹配项"使用 matcher 的 group 方法时 2022-01-01
- 如何使用 Java 创建 X509 证书? 2022-01-01
- Java Keytool 导入证书后出错,"keytool error: java.io.FileNotFoundException &拒绝访问" 2022-01-01
- 减少 JVM 暂停时间 >1 秒使用 UseConcMarkSweepGC 2022-01-01