Java:有关try、catch和finally的学习

在看到书本的时候对finally的介绍是:不论是否在try块中产生异常,都会执行finally。当时对这句话的理解不够深,误以为在try...catch的结构中finally会必定执行。当时我产生一个疑问:catch已经对异常进行处理了,那后面的语句势必会执行,无论是否有finally。为此我还做了个小程序来验证。

ExceptionDemo.java

Version 1:

/**
* Created by Funny_One on 2017/8/30.
*/
public class ExceptionDemo {
public static void main(String[] args){
try{
int b = 1/0;
}catch (Exception e){
System.out.println("This is an Exception");
}
System.out.println("Not finally yet");
}
}

Version 2:

/**
* Created by Funny_One on 2017/8/30.
*/
public class ExceptionDemo {
public static void main(String[] args){
try{
int b = 1/0;
}catch (Exception e){
System.out.println("This is an Exception");
}
finally {
System.out.println("Not finally yet");
} }
}

结果:

这就很纳闷了。。。。然后和同学讨论,我们注意到书上有这么两句话:“不论是正常退出try块,还是因为抛出一个异常而退出,都要执行finally。”以及“try后面不一定要加catch”于是我们想到会不会不要catch块的时候才能展示出finally的功能???于是我们改变程序的代码。

Version 3:

public class ExceptionDemo {
public static void main(String[] args){
try{
int b = 1/0;
} System.out.println("Not finally yet"); }
}

但这个版本连编译都无法通过,运行后出现了错误:

根据错误的要求,我在代码中加上了finally:

Version 4 :

/**
* Created by Funny_One on 2017/8/30.
*/
public class ExceptionDemo {
public static void main(String[] args){
try{
int b = 1/0;
} finally {
System.out.println("Not finally yet");
} }
}

结果:

此外,还有一个要,程序先执行了finally中的语句,然后才开始报出异常。至此,知道了finally怎么用。

Java:有关try、catch和finally的学习(供自己参考)的更多相关文章

  1. 20172319 《Java程序设计教程》 第9周学习总结

    20172319 2018.05.06-05.14 <Java程序设计教程>第9周学习总结 目录 教材学习内容总结 教材学习中的问题和解决过程 代码调试中的问题和解决过程 代码托管 上周考 ...

  2. 20172319 《Java程序设计教程》 第10周学习总结

    20172319 2018.05.09-05.21 <Java程序设计教程>第10周学习总结 目录 教材学习内容总结 教材学习中的问题和解决过程 代码调试中的问题和解决过程 代码托管 上周 ...

  3. java 并发编程——Thread 源码重新学习

    Java 并发编程系列文章 Java 并发基础——线程安全性 Java 并发编程——Callable+Future+FutureTask java 并发编程——Thread 源码重新学习 java并发 ...

  4. 201871010123-吴丽丽 《面向对象程序设计(Java)》第十六周学习总结

    201871010123-吴丽丽 <面向对象程序设计(Java)>第十六周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...

  5. 201271050130-滕江南-《面向对象程序设计(java)》第十六周学习总结

    201271050130-滕江南-<面向对象程序设计(java)>第十六周学习总结 博文正文开头格式:(2分) 项目 内容 这个作业属于哪个课程 https://www.cnblogs.c ...

  6. 201271050130-滕江南-《面向对象程序设计(java)》第十五周学习总结

    201271050130-滕江南-<面向对象程序设计(java)>第十五周学习总结 博文正文开头格式:(2分) 项目 内容 这个作业属于哪个课程 https://www.cnblogs.c ...

  7. 201871010111-刘佳华《面向对象程序设计(java)》第十六周学习总结

    学号-姓名<面向对象程序设计(java)>第十六周学习总结 实验十四  应用程序归档与线程初步 实验时间 2019-12-12 第一部分:理论知识总结 1.程序与进程的概念 ‐程序是一段静 ...

  8. 201871010111-刘佳华《面向对象程序设计(java)》第十五周学习总结

    201871010111-刘佳华<面向对象程序设计(java)>第十五周学习总结 实验十三  Swing图形界面组件(二) 实验时间 2019-12-6 第一部分:理论知识总结 5> ...

  9. 201871010123-吴丽丽《面向对象程序设计(Java)》第十五周学习总结

    201871010123-吴丽丽<面向对象程序设计(Java)>第十五周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...

随机推荐

  1. dfs板子题-Hdu1283Vegetables

    题目描述毕业后,Vegetable在一家建筑公司找到了工作.他所在的城市将要进行整修,要求把所有空地修成公园. 市区是一个N*M的矩形,Vegetable拿到了该市的地图,现在判断共要修几处公园? 注 ...

  2. 【2016 ICPC亚洲区域赛北京站 E】What a Ridiculous Election(BFS预处理)

    Description In country Light Tower, a presidential election is going on. There are two candidates,   ...

  3. 用Google Cloud Plateform使用ansible创建新实例

    谷歌大法好,退aws保平安 ---假设自己现在有一个电脑(本机),先用谷歌云创一个服务器(主机) ,再通过ansible在谷歌云上创建一个服务器(节点)并进行控制 先把自己的公钥加到元数据里面,在go ...

  4. vux使用过程中遇到的问题

    1.使用confirm.prompt组件时,ios下点击输入框很难获得焦点 解决思路:使用confirm.show方法,自定义content内容,show方法里面设置input的focus方法 let ...

  5. Windows 安装Redis程序

    一.系统环境 1.硬件系统:Windows7 64位 2.软件环境: Redis 64位 3.2.100.Redis Desktop Manager. 二.Redis安装 下载地址:https://g ...

  6. 笔记:javascript操作iframe内的DOM元素,及调用iframe内的方法

    iframe相当于一个嵌入在网页内的浏览器,它与当前网页是隔离的. 但有时我们也需要在当前网页操作iframe内的元素或操作iframe内的javascript方法. 在网页内操作DOM元素,是使用d ...

  7. Delphi 高效读写锁

    本人设计了一个高效读写锁,可实现多个线程读一个线程写的锁,应该比Delphi自带的读写锁高效,本人没有做对比测试. 本文的锁不可以在一个线程里重入,否则会锁死,另外读写锁最多支持65535个线程同时读 ...

  8. Maven plugin插件---appassembler-maven-plugin快速配置

    使用appassembler-maven-plugin 打包自定义目录 1.Pom中添加 <plugin> <artifactId>maven-resources-plugin ...

  9. 实现一个 RESTful API 服务器

    RESTful 是目前最为流行的一种互联网软件结构.因为它结构清晰.符合标准.易于理解.扩展方便,所以正得到越来越多网站的采用. 什么是 REST REST(REpresentational Stat ...

  10. 转:c# Linq 的分页[转]

    转:http://www.cnblogs.com/leleroyn/archive/2008/05/14/1196811.html 很多学习Linq的朋友肯定有自己所不同的方法,考虑这个问题我所想到的 ...