关于Java异常一段很有意思的代码
来源:互联网 发布:mac os 和win10双系统 编辑:程序博客网 时间:2024/06/06 03:19
今天学习了Java的异常,讲到try-catch-finally时,老师演示了一段代码,觉得很有意思,很能反映出其执行的过程,让自己有点绕,特意记录一下。
只要代码执行到try代码内部, 不管有没有异常,finally区域的代码都会执行.
即便try代码和catch代码中有return, finally也会执行.
只有一种情况在执行finally代码前,退出虚拟机.
System.exit(1);
--------------------------------------------------------------------------------------------
finally语句和前面的return语句那个先执行? finally先执行.
int i = 10;try { return i++; //i++: 10 i:11 黄色区域,csdn代码加颜色好像有问题。。。。。} catch (Exception e) { e.printStackTrace();}finally { i++; // i:12 蓝色区域}
上面代码返回的是10, i的最终结果: 12
执行步骤:1. 黄色区域的i++先执行,算出表达式的结果, 但是先不return(先“存”起来).2. 执行finally中蓝色区域的i++3. 在执行黄色区域的return.
int i = 10;try { return i++; //i++: 10 i:11 黄色区域,csdn代码加颜色好像有问题。。。。。} catch (Exception e) { e.printStackTrace();}finally { return i++;//i++:11, i:12 蓝色区域}
上面代码返回的是11, 不是10.
执行步骤:1. 黄色区域的i++先执行,算出表达式的结果, 但是先不return.2. 执行蓝色区域的i++计算出表达式的结果,然后return.3. try的return没有执行.
0 0
- 关于Java异常一段很有意思的代码
- 一段有意思的java代码
- 一段Java有意思的代码
- 一段很有意思的代码
- 一段很有意思的代码
- 一段很有意思的代码
- 一段很有意思的代码
- 一段很有意思的代码
- 关于+—~有意思的一段C代码
- 一段有意思的代码
- 一段有意思的代码
- 一段有意思的代码
- 一段有意思的代码
- something with buffer 有意思的缓冲区:关于setbuf()一段很有意思的代码
- 一段有意思的加密代码
- 一段有意思的表格代码
- 一段有意思的javascript代码
- 一段有意思的matlab代码
- ios代码编写UIButton,设置图片,图片不显示
- APP开发及发布流程
- gets()、puts()和fgets()、fputs() 的区别。
- 如何实现JS_MD5加密
- jQuery File Upload
- 关于Java异常一段很有意思的代码
- 第一章 基本语法-5循环(for)
- APP提交APP Store 加速通道
- C++中的继承问题
- Goldengate报错之ERROR OGG-06551
- Git的使用<二> github的常用使用方法
- LSI推多核PowerPC和高速嵌入式DRAM内存模块
- libeXosip使用小技巧
- vps搭建pptp vpn