10.finally块

马克-to-win:finally块儿是怎么工作的?有什么意义?finally关键字创建一个代码块。没有try,finally块儿不能单独存在。该代码块在一个try/catch块完成之后另一个try/catch出现之前执行。马克-to-win:finally一定会执行,即使 1)异常没有发生 2)根本没有写catch块儿 3)没有与该异常相匹配的catch子句。4)try代码块中包含有break、continue、return或者throw语句(或直接崩溃或发生OutOfMemoryError)。

为什么抛出异常或发生错误,finally块儿还是能运行呢?想象一下程序执行的过程就明白了。jvm一句一句的向下执行,当它发现数组过界时,它就先执行finally块儿,然后再执行打印报错现在正在发生数组过界。注意现在是你的程序出现问题,jvm一点问题都没有,所以它还能正常打印报错。(见下面的例子)

更多内容请见原文,文章转载自:https://blog.csdn.net/qq_44639795/article/details/103106611

java中finally块儿是怎么工作的?有什么意义?的更多相关文章

  1. Java中的Annotation(2)----Annotation工作原理

    Java中的Annotation(2)----Annotation工作原理 分类: 编程语言2013-03-18 01:06 3280人阅读 评论(6) 收藏 举报 上一篇文章已经介绍了如何使用JDK ...

  2. 浅谈Java中的System.gc()的工作原理

    很多人把Java的“效率低下”归咎于不能自由管理内存,但我们也知道将内存管理封装起来的好处,这里就不赘述. Java中的内存分配是随着new一个新的对象来实现的,这个很简单,而且也还是有一些可以“改进 ...

  3. Java中的抽象类详解,它存在的意义在哪里?

    学习抽象类前先理解下面这段话: 问你个问题,你知道什么是"东西"吗?什么是"物体"吗? "麻烦你,小王.帮我把那个东西拿过来好吗" 在生活中 ...

  4. Java中的注解是如何工作的?

    自Java5.0版本引入注解之后,它就成为了Java平台中非常重要的一部分.开发过程中,我们也时常在应用代码中会看到诸如@Override,@Deprecated这样的注解.这篇文章中,我将向大家讲述 ...

  5. Java中的注解是如何工作的?--annotation学习一

    自Java5.0版本引入注解之后,它就成为了Java平台中非常重要的一部分.开发过程中,我们也时常在应用代码中会看到诸如@Override,@Deprecated这样的注解.这篇文章中,我将向大家讲述 ...

  6. java中的线程是如何工作的。

    来自对此文章的编辑. https://mp.weixin.qq.com/s?biz=MzA5NDg3MjAwMQ==&mid=2457103451&idx=1&sn=ba302 ...

  7. java中的javap命令(工作中补充的知识)

    背景: 上周针对某信得压力测试demo进行场景复现,但是只提供了class文件,只能通过反编译的软件进行查看,在复现的过程中报错某某某行,这里我以xx行代替,因为是class文件,所以并不能确定具体到 ...

  8. java中的本地缓存

    java中的本地缓存,工作后陆续用到,一直想写,一直无从下手,最近又涉及到这方面的问题了,梳理了一下.自己构造单例.guava.ehcache基本上涵盖了目前的大多数行为了.   为什么要有本地缓存? ...

  9. 008 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 02 Java 中的关键字

    008 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 02 Java 中的关键字 关键字 关键字就是一些有特殊意义的词 之前学习的程序中涉及到的关键字 Java中 ...

随机推荐

  1. 【python】pip安装库时出现Read timed out.解决办法

    昨天第一次用python画圆,当时并没有安装numpy库(导入数据包)和matplotlib库(导入图形包),于是尝试用pip安装库 首先,我先更新了pip,如下图: 顺便附上成功截图: 然后安装nu ...

  2. Linux命令,附带意思

    1.ls:命令是列出目录内容 2.lsblk:就是列出块设备3.md5sum:就是计算和检验MD5信息签名.4.dd:命令代表了转换和复制文件5.uname显示内核类别, uname -a显示详细信息 ...

  3. call、apply 和 bind

    call().apply().bind() 都是用来重定义 this 这个对象的! var obj1 = { username: "HuiTaiLang", fn: functio ...

  4. elasticsearch高亮之highlight原理

    一.highlight简介 highlight是提升用户体验的重要手段,搜索引擎通过高亮突出命中关键字等方式,方便用户通过关键字周围的信息快速的确认是否是自己希望的结果: highlight功能通常包 ...

  5. 分布式 PostgreSQL 集群(Citus)官方示例 - 实时仪表盘

    Citus 提供对大型数据集的实时查询.我们在 Citus 常见的一项工作负载涉及为事件数据的实时仪表板提供支持. 例如,您可以是帮助其他企业监控其 HTTP 流量的云服务提供商.每次您的一个客户端收 ...

  6. 基于python 信用卡评分系统 的数据分析

    基于python 信用卡评分系统 的数据分析 import pandas as pd import matplotlib.pyplot as plt #导入图像库 from sklearn.ensem ...

  7. Mybatis中Log4j日志的使用

    参考资料: (1). 百度百科:https://baike.baidu.com/item/log4j/480673?fr=aladdin (2). B站狂神的视频:https://www.bilibi ...

  8. 基于WebSocket的简易聊天室

    用的是Flash + WebSocket 哦~ Flask 之 WebSocket 一.项目结构: 二.导入模块 pip3 install gevent-websocket 三.先来看一个一对一聊天的 ...

  9. python发送邮件之宝藏库yagmail

    之前使用email模块+smtplib模块发送邮件,虽然可以实现功能,但过程比较繁琐,今天发现一个宝藏库(yagmail),可以说是炒鸡好用啦!!! 贴上实现代码,大家细品 yagmail安装 pip ...

  10. Java的http post请求01之HttpURLConnection

    package com.ricoh.rapp.ezcx.iwbservice.webservice; import java.io.BufferedOutputStream; import java. ...