finally是保证语句能一定执行的。不管程序是否会报错,我们把程序一定要执行的代码放在finally中。

比如说流的关闭,不管在读写的过程中是否报错,一定要关闭流,可以把流的关闭操作放在finally中。

代码展示如下所示:

package exception;

import java.io.FileOutputStream;
import java.io.IOException; /**
* finally在IO中的使用
* @author 小明
*
*/
public class FinallyDemo2 { public static void main(String[] args) {
//以下是标准的流创建写法
FileOutputStream fos = null; try {
fos = new FileOutputStream("fos.dat");
fos.write(1);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
try {
if(fos != null){
fos.close();
}
//报错1:有作用域,所以要把fos的定义放在try外面,否则会报错
//报错2:close()方法要求处理一个异常
//注意:在new创建的过程中也有可能报错,比如说路径不对(父路径不存在)
//这时会创建失败,那么fos仍然是空,那么这里应该多一层判断,
//因为fos为空,关闭会抛出异常。
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} }

这时流创建时标准的写法。

java异常中的finally(一)的更多相关文章

  1. 【JAVA】Java 异常中e的getMessage()和toString()方法的异同

    参考链接 CSDN: Java 异常中e的getMessage()和toString()方法的异同 示例代码1: public class TestInfo {     private static ...

  2. [转]java异常中Exception捕获不到的异常

    一 概念 众所周知java提供了丰富的异常类,这些异常类之间有严格的集成关系,分类为 父类Throwable Throwable的两个子类Error和Exception Exception的两个子类C ...

  3. java异常中的finally(二)

    对于含有return语句的情况,这里我们可以简单地总结如下: try语句在返回前,将其他所有的操作执行完,保留好要返回的值,而后转入执行finally中的语句,而后分为以下三种情况: 情况一:如果fi ...

  4. java异常中Exception捕获不到的异常

    一 概念 众所周知java提供了丰富的异常类,这些异常类之间有严格的集成关系,分类为 父类Throwable Throwable的两个子类Error和Exception Exception的两个子类C ...

  5. java异常中throw和throws的区别

    throws和throwthrows:用来声明一个方法可能产生的所有异常,不做任何处理而是将异常往上传,谁调用我我就抛给谁.  用在方法声明后面,跟的是异常类名  可以跟多个异常类名,用逗号隔开  表 ...

  6. JAVA 线程中的异常捕获

    在java多线程程序中,所有线程都不允许抛出未捕获的checked exception(比如sleep时的InterruptedException),也就是说各个线程需要自己把自己的checked e ...

  7. Java异常处理中finally中的return会覆盖catch语句中的return语句

    Java异常处理中finally中的return会覆盖catch语句中的return语句和throw语句,所以Java不建议在finally中使用return语句 此外 finally中的throw语 ...

  8. Java thread中对异常的处理策略

    转载:http://shmilyaw-hotmail-com.iteye.com/blog/1881302 前言 想讨论这个话题有一段时间了.记得几年前的时候去面试,有人就问过我一个类似的问题.就是j ...

  9. 第33节:Java面向对象中的异常

    Java中的异常和错误 Java中的异常机制,更好地提升程序的健壮性 throwable为顶级,Error和Exception Error:虚拟机错误,内存溢出,线程死锁 Exception:Runt ...

随机推荐

  1. 一、Nuxt简介

    1.Nuxt是什么    Nuxt.js是基于vue的服务器端渲染框架,常用来做SSR(服务器端渲染)   2.为什么用Nuxt    Vue开发的SPA(单页应用)不利于搜索引擎的SEO优化   3 ...

  2. Vue.js之组件传值

    Vue.js之组件传值 属性传值可以从父组件到子组件,也可以从子组件到父组件. 这里讲一下从父组件到子组件的传值 还以上次的demo为例,demo里有APP.vue是父组件,Header.vue,Us ...

  3. rpm命令相关命令运用实例

    1) 挂载光盘文件到/media目录 2) 进去/media目录下的Packages目录 3) 查看系统已安装的所有rpm包 4) 查看系统是否安装dhcp软件包 5,安装dhcp软件包 6) 查看d ...

  4. Longest Common Prefix -最长公共前缀

    问题:链接 Write a function to find the longest common prefix string amongst an array of strings. 解答: 注意 ...

  5. 两张Excel表比较,两个for循环比较优化使用Contains

    将一个Excel表中的sheet中的一列导出到List<string>,用一个for循环循环另一张表中的数据,看是否在第一张表中的Contains中

  6. NetCDF 介绍

    NetCDF 1 NetCDF 1.1概述(Overview) NetCDF (network Common Data Form) is a set of software libraries and ...

  7. C# 获取MD5值

    class CommonHelper { /// <summary> /// 通过字符串获取MD5值,返回32位字符串. /// </summary> /// <para ...

  8. java DateTimeUtil 日期工具类

    package com.sicdt.library.core.utils; import java.sql.Timestamp; import java.text.DateFormat; import ...

  9. 方法——<37>

    1,返回url参数 /* * 返回参数值 * @method getUrlPara * @papram {string},url中参数名 * @return {string},url中参数值 * */ ...

  10. WEB-INF有关的目录路径总结、转向方式: forward 重定向方式: Redirect

    WEB-INF有关的目录路径总结 1.资源文件只能放在WebContent下面,如 CSS,JS,image等.放在WEB-INF下引用不了. 2.页面放在WEB-INF目录下面,这样可以限制访问,提 ...