博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java异常
阅读量:6803 次
发布时间:2019-06-26

本文共 776 字,大约阅读时间需要 2 分钟。

1)首先java对于异常捕获使用的是try---catch或try --- catch --- finally 代码块,程序会捕获try代码块里面的代码,若捕获到异常则进行catch代码块处理。若有finally则在catch处理后执行finally里面的代码。然而存在这样两个问题:

a.看如下代码:

try{
//待捕获代码}catch(Exception e){ System.out.println("catch is begin"); return 1 ; }finally{ System.out.println("finally is begin"); }

在catch里面有一个return,那么finally会不会被执行呢?答案是肯定的,上面代码的执行结果为:

catch is begin finally is begin

也就是说会先执行catch里面的代码后执行finally里面的代码最后才return1 ;

b.看如下代码:

try{
//待捕获代码 }catch(Exception e){ System.out.println("catch is begin"); return 1 ; }finally{ System.out.println("finally is begin"); return 2 ; }

在b代码中输出结果跟a是一样的,然而返回的是return 2 ; 原因很明显,就是执行了finally后已经return了,所以catch里面的return不会被执行到。也就是说finally永远都会在catch的return前被执行。(这个是面试经常问到的问题哦!)

转载于:https://www.cnblogs.com/lhang55/p/7600429.html

你可能感兴趣的文章
RH134 UNIT5
查看>>
解析linux根文件系统的目录树
查看>>
onTouchEvent事件中调用onFling方法
查看>>
我的友情链接
查看>>
linux shell
查看>>
Windows Server入门系列35 了解NTFS安全权限
查看>>
序列判断
查看>>
【C语言】【笔试题】实现一个函数int my_atoi(char s[]),可以将一个字符串转换为对应的整数。...
查看>>
php常用自定义函数
查看>>
150809112 杨磊
查看>>
如何取消开机按ctrl+alt+delete组合键
查看>>
Linux操作系统的主要用途是什么
查看>>
jmeter之使用fidder抓包之后进行接口测试
查看>>
进程调度模拟程序
查看>>
Linux自建简易版DNS主从服务器
查看>>
linux 7.2 安装openstack 过程出现rabbitmq-server 错误解决方法
查看>>
PHP CI框架学习笔记-分页实现程序
查看>>
提升不止一点点,Dubbo 3.0 预览版详细解读,还愣着干啥啊?进来啊
查看>>
磁盘配额(quota)
查看>>
php同步mysql两个数据库中表的数据
查看>>