finally块
/*
finally 块; finally块的 使用前提是必须要存在try块才能使用。 finally块的代码在任何情况下都会执行的,除了jvm退出的情况。 finally非常适合做资源释放的工作,这样子可以保证资源文件在任何情况下都 会被释放。 try块的三种组合方式: 第一种: 比较适用于有异常要处理,但是没有资源要释放的。
try{ 可能发生异常的代码 }catch(捕获的异常类型 变量名){
处理异常的代码
} 第二种:比较适用于既有异常要处理又要释放资源的代码。 try{ 可能发生异常的代码 }catch(捕获的异常类型 变量名){
处理异常的代码
}finally{
释放资源的代码;
} 第三种: 比较适用于内部抛出的是运行时异常,并且有资源要被释放。
try{ 可能发生异常的代码 }finally{
释放资源的代码;
} */ class Demo5
{
public static void main(String[] args)
{
//System.out.println("Hello World!");
div(4,0);
} public static void div(int a, int b){
try{
if(b==0){
System.exit(0);//退出jvm
}
int c = a/b;
System.out.println("c="+ c); }catch(Exception e){
System.out.println("出了除数为0的异常...");
throw e;
}finally{
System.out.println("finall块的代码执行了..");
}
}
}
/*
fianlly释放资源的代码 */
import java.io.*;
class Demo6
{
public static void main(String[] args)
{
FileReader fileReader = null;
try{
//找到目标文件
File file = new File("f:\\a.txt");
//建立程序与文件的数据通道
fileReader = new FileReader(file);
//读取文件
char[] buf = new char[1024];
int length = 0;
length = fileReader.read(buf);
System.out.println("读取到的内容:"+ new String(buf,0,length));
}catch(IOException e){
System.out.println("读取资源文件失败....");
}finally{
try{
//关闭资源
fileReader.close();
System.out.println("释放资源文件成功....");
}catch(IOException e){
System.out.println("释放资源文件失败....");
}
} }
}
finally块的更多相关文章
- 页面中多个script块之间的关系
一:函数声明与函数定义表达式在函数调用间的区别 <script type="text/javascript"> doA(); var doA = function(a ...
- HTML块级元素
前面的话 在HTML5出现之前,人们一般把元素分为块级.内联和内联块元素.本文将详细介绍HTML块级元素 h 标题(Heading)元素有六个不同的级别,<h1>是最高级的,而&l ...
- JavaScript模仿块级作用域
avaScript 没有块级作用域的概念.这意味着在块语句中定义的变量,实际上是在包含函数中而非语句中创建的,来看下面的例子: function outputNumbers(count){ for ( ...
- [原] KVM 虚拟化原理探究(6)— 块设备IO虚拟化
KVM 虚拟化原理探究(6)- 块设备IO虚拟化 标签(空格分隔): KVM [toc] 块设备IO虚拟化简介 上一篇文章讲到了网络IO虚拟化,作为另外一个重要的虚拟化资源,块设备IO的虚拟化也是同样 ...
- CSharpGL(33)使用uniform块来优化对uniform变量的读写
CSharpGL(33)使用uniform块来优化对uniform变量的读写 +BIT祝威+悄悄在此留下版了个权的信息说: Uniform块 如果shader程序变得比较复杂,那么其中用到的unifo ...
- ES6(块级作用域)
我们都知道在javascript里是没有块级作用域的,而ES6添加了块级作用域,块级作用域能带来什么好处呢?为什么会添加这个功能呢?那就得了解ES5没有块级作用域时出现了哪些问题. ES5在没有块级作 ...
- 【swift】BlockOperation和GCD实用代码块
//BlockOperation // // ViewController.swift import UIKit class ViewController: UIViewController { @I ...
- .NET基础 一步步 一幕幕[循环、逻辑语句块]
循环.逻辑语句块 好久不写博客了,断更了好几天了,从上周五到今天,从北京到上海,跨越了1213.0公里,从一个熟悉的城市到陌生的城市,还好本人适应力比较好,还有感谢小伙伴的接风咯,一切都不是事,好 ...
- ES6之块级作用域
一.前言 在ECMAScript6(以下简称ES6)之前,ECMAScript的作用域只有两种: 1. 全局作用域: 2. 函数作用域. 正是因为有这两种作用域,所以在JavaScript中出现一 ...
- CSS3与页面布局学习总结(二)——Box Model、边距折叠、内联与块标签、CSSReset
一.盒子模型(Box Model) 盒子模型也有人称为框模型,HTML中的多数元素都会在浏览器中生成一个矩形的区域,每个区域包含四个组成部分,从外向内依次是:外边距(Margin).边框(Border ...
随机推荐
- MYSQL架构理解
目录 一.MYSQL架构 1. 架构图 2.分层实现 3.查询组件 二.并发控制 三. 事务 四.引擎 摘自 通过对MYSQL重要的几个属性的理解,建立一个基本的MYSQL的知识框架 一.MYSQL架 ...
- VirtualBox虚拟机安装win8/10
你可能会遇到过,需要win8来做一些操作,不过自己的本机是win7,难道要重装系统吗?操作好了后,想用回win7怎么办?这个时候,如果旁边有人的系统刚好符合你对系统的要求,那可以借用,如果使用时间太长 ...
- Python_类型转换
列表与字符串互相转换 join方法将list转换为string _list = ["a", "b", "c"] # 以".&quo ...
- 总结 sql 的 并集、交集、差集
有两个表 ,表a ,表b , create table a { age int , name varchar(20) } ending=innodb; insert into a values(13 ...
- Word2010制作电子印章
原文链接: https://www.toutiao.com/i6488971642788643341/ 选择"插入"选项卡,"插图"功能组,"形状&q ...
- Windwos上Mysql突然出现系统错误3,找不到系统路口
注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6540869188678844935/ 问题出现: 调试系统时,突然发现数据库连接不上了,打开界面工具也发现连接不上 ...
- 经典变长指令-ModRM
一.如何计算ModRM 0X88 MOV Eb,Gb G:通用寄存器 0X89 MOV Ev,Gv E:寄存器/内存 0X8A MOV Gb,Eb b:字节 0X8B MOV Gv,Ev v:Word ...
- BitMap算法知识笔记以及在大数据方向的使用
概述 所谓的BitMap算法就是位图算法,简单说就是用一个bit位来标记某个元素所对应的value,而key即是该元素,由于BitMap使用了bit位来存储数据,因此可以大大节省存储空间,这是很常用的 ...
- k8s中的nginx-ingress如何配置路径重定向
k8s中的nginx-ingress如何配置路径重定向 一. 需求描述 路径重定向的一般应用场景: 调整用户浏览的URL,看起来更规范 为了让搜索引擎收录网站内容,让用户体验更好 网站更换新域名后 根 ...
- VirtualBox 安装 Ubuntu 20.04 全流程
VirtualBox 安装 Ubuntu 20.04 全流程 内容概要 这个作业属于哪个课程 2022面向对象程序设计 这个作业要求在哪里 2022面向对象程序设计寒假作业1 这个作业的目标 在虚拟机 ...