[转载] Java异常处理中Try-Catch-Finally中常见的笔试题
参考链接: Java中try catch finally
假设利用 return 语句从 try 语句块中退出。在方法返回前,finally子句的内容将被执行。如果 finally 子句中也有一个 return 语句,这个返回值将会覆盖原始的返回值。但是finally之外的则不会被执行
public int add(int a,int b)
{
try {
return a+b;
}
catch (Exception e) {
System.out.println("catch语句块");//不会执行
}
finally{
System.out.println("finally语句块");
}
//因为try中有return,所以finally之后的都不会执行
System.out.println("我不会出现的!");//不会执行
return 0;//不会执行
}
1、finally块一定会执行,无论是否try…catch。 2、finally前有return,会先执行return语句,并保存下来,再执行finally块,最后return。 3、finally前有return、finally块中也有return,先执行前面的return,保存下来,再执行finally的return,覆盖之前的结果,并返回。
public static void main(String[] args) {
int k = f_test();
System.out.println(k);
}
public static int f_test(){
int a = 0;
try{
a = 1;
return a;
}
finally{
System.out.println("It is in final chunk.");
a = 2;
return a;
}
}
/*输出:
It is in final chunk.
2*/
public static void main(String[] args) {
try {
int i = 100 / 0;
System.out.println(i);//try后面的语句不会执行
} catch (Exception e) {
System.out.println(1);
//throw new RuntimeException();
} finally {
System.out.println(2222);
}
//前面没有return语句,所以会执行
System.out.println(3);
}
/**
* 1
2222
3
*/
public static void main(String[] args) {
try {
int i = 100 / 0;
System.out.println(i);//后面的语句不会执行
} catch (Exception e) {
System.out.println(1);
throw new RuntimeException();//只会执行finally中的,其他的不会执行
} finally {
System.out.println(2222);
}
//不会执行
System.out.println(3);
}
/**
* 1
* 2222
* Exception in thread "main" java.lang.RuntimeException
*/
还是需要理解Try…catch…finally与直接throw的区别:
try catch是直接处理,处理完成之后程序继续往下执行.throw则是将异常抛给它的上一级处理,程序便不往下执行了。本题的catch语句块里面,打印完1之后,又抛出了一个RuntimeException,程序并没有处理它,而是直接抛出,因此执行完finally语句块之后,程序终止了
[转载] Java异常处理中Try-Catch-Finally中常见的笔试题相关推荐
- Java异常处理中try,catch,finally的各种组合用法
1.try+catch 程序的流程是:运行到try块中,如果有异常抛出,则转到catch块去处理.然后执行catch块后面的语句 2.try+catch+finally 程序的流程是:运行到try块中 ...
- java 异常处理 return,求大神!!!!java 异常处理中return的意思
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 在方法中使用return 就是返回到方法的调用方,而在main 方法中使用,返回到JVM(虚拟机),如果把上面的main 方法中的代码放在一个方法中,如下 ...
- java异常中return_求大神!!!!java 异常处理中return的意思
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 在方法中使用return 就是返回到方法的调用方,而在main 方法中使用,返回到JVM(虚拟机),如果把上面的main 方法中的代码放在一个方法中,如下 ...
- Java异常之try,catch,finally,throw,throws
Java异常之try,catch,finally,throw,throws 你能区分异常和错误吗? 我们每天上班,正常情况下可能30分钟就能到达.但是由于车多,人多,道路拥挤,致使我们要花费更多地时间 ...
- 异常处理中throws和throw的区别?
异常处理中throws和throw的区别? 参考文章: (1)异常处理中throws和throw的区别? (2)https://www.cnblogs.com/suger-4/p/12192418.h ...
- python 异常处理中try else语句的使用
python 异常处理中try else语句的使用 参考文章: (1)python 异常处理中try else语句的使用 (2)https://www.cnblogs.com/journey-mk5/ ...
- python中try和except语句语言导入包吗_Python异常处理中try与except用法的案例
Python异常处理中try与except用法的案例 发布时间:2020-11-03 09:44:36 来源:亿速云 阅读:85 作者:小新 小编给大家分享一下Python异常处理中try与excep ...
- java方法后面throw的作用_Java异常处理中throw与throws的用法区别
前言 说到异常,我们当然会想到try catch finally.当然如果用这个的话,被try块包围的代码说明这段代码可能会发生异常,一旦发生异常,异常便会被catch捕获到,然后需要在catch块中 ...
- [转载] Java异常:选择Checked Exception还是Unchecked Exception?
参考链接: Java中的已检查与未检查异常| checked或unchecked异常 Java包含两种异常:checked异常和unchecked异常.C#只有unchecked异常.checked和 ...
最新文章
- Android知识点小结
- FTP的dos命令使用方法
- oracle set feedback off,Oracle数据库之Oracle导出数据中的prompt,set feedback 等是什么意思...
- fatal: 无法访问 ‘https://github.com/salesforce/WikiSQL/‘:GnuTLS recv error (
- Redis概述、数据类型
- java射击游戏_Java Swing打猎射击游戏源码
- *【HDU - 2586】How far away ? (LCA模板题,倍增)
- @PathVariable 注解 说明
- 探索比特币源码4-JSON-RPC接口的其他调用方法
- 生活中的算法的实际举例_驾校学的技术,在实际生活中,你能运用自如吗?
- 网络学习(一)网络版块主题介绍
- 智能优化算法(源码)-樽海鞘优化算法(Salp Swarm Algorithm,SSA)
- J2EE视频实战教程网址
- “杜拉拉升职记”电影看后感
- windows7、10磁盘分区以及磁盘扩展(详细教程以及注意事项)
- 上线、发布、发版流程
- 手机号码界面输入数字查看手机信息
- 规则引擎drools系列(一)
- Linux系统日志管理(redhat)
- 箱形图 python_Python-箱形图
热门文章
- 【编辑器】VSCode制表符Tab等修改
- 【poj3263】Tallest Cow(差分数组)
- 用jframe给MySQL输入数据_如何从JTextField输入Info到sql数据库?
- oracle的.aud文件,Oracle 11g 在audit_file_dest目录下产生大量的aud文件
- PAT—1082 射击比赛(20)
- Python入门--特殊方法__len__(),__add()__
- 医学生可以跨专业考计算机的专业,可以跨考医学研究生:2016跨专业考研需谨慎的专业解读:临床医学...
- 操作系统—覆盖与交换
- OpenGL基础28:模型
- Unity3D基础13:给物品添加力