1、try catch处理异常

try{} catch(Exception e){} finally{ 必然执行的代码,一般是释放资源 }

2、流使用try catch处理异常

其中,变量作用域只在当前方法体即大括号范围,为创建流对象变量要放在try 方法体外面,初始化为 null;

变量创建时候尽量要初始化一下,因为在使用必须有值,即栈内存中的这个变量存储的地址值,指向堆内存中此对象的地址,必须有,否则报NullPointException;

在调用构造方法创建流对象的时候,以路径为入参的时候,除了最后的文件名前面的路径地址若不存在则会报(找不到系统路径);

流对象的 close() 方法在定义时候是声明了异常的,所以调用时候必须要处理异常,直接throws没有意义,一般是try catch处理异常;

在 finally 方法体中,流对象在调用close方法体时,如果 try 方法体中的创建流对象失败了,则流对象还是保持初始化时候的null值,则又会报NullPointException;

所以要优化代码,再加一层是否控制判断;

try catch处理流的异常的更多相关文章

  1. IO流中的字符输入输出流及try...catch处理流处理中的异常

    使用字节流读取中文的问题 import java.io.FileInputStream; import java.io.IOException; /* 使用字节流读取中文文件 1个中文 GBK:占用两 ...

  2. Java基础知识强化之IO流笔记02:try...catch的方式处理异常

    1. 案例示例: package com.himi.trycatch; public class ExceptionDemo { public static void main(String[] ar ...

  3. 一个Exception catch不住的【异常】

    现象: Controller中的方法接收到前台ajax请求后开始执行, 当执行到某一行时程序终止,前台回调进Error方法. 后台明明catch了Exception异常,但异常并没有被捕获(不进cat ...

  4. 异常-try...catch的方式处理异常2

    package cn.itcast_02; /* * A:一个异常 * B:二个异常的处理 * a:每一个写一个try...catch * b:写一个try,多个catch * try{ * ... ...

  5. 异常-try...catch的方式处理异常1

    package cn.itcast_02; /* * 我们自己如何处理异常呢? * A:try...catch...finally * B:throws 抛出 * * try...catch...fi ...

  6. SqlServer try catch 捕获触发器\存储过程异常,结合 transaction 事务

    SoEasy~,贴上代码看所有 ALTER trigger [dbo].[tgr_SG_Gathering_update] on [dbo].[SG_Gathering] for update --更 ...

  7. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_09 序列化流_5_InvalidClassException异常_原理

    序列化一遍 反序列化再来一遍 age的修饰符改为public 直接反序列化就会抛出异常 序列化的时候会给Person.class添加序列号,serialVersionUID,.反序列化需要对比这个se ...

  8. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_05 IO字符流_9_JDK7和JDK9流中异常的处理

    jdk7 jdk9

  9. File类与常用IO流第六章——使用try...catch...finally处理流中的异常

    在JDK1.7之前: 1 package com.itheima.demo06.trycatch; 2 3 import java.io.FileWriter; 4 import java.io.IO ...

随机推荐

  1. Apache解析漏洞

    多解析特性 在Apache1.x,2.x中Apache 解析文件的规则是从右到左开始判断解析,如果后缀名为不可识别文件解析,就再往左判断.因此对于apache而言,一个test.php.qwea文件依 ...

  2. MapReduce框架原理-Writable序列化

    序列化和反序列化 序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储(持久化)和网络传输. 反序列化就是将收到字节序列(或其他数据传输协议)或者是硬盘的持久化数据,转换成内存中的 ...

  3. 算法竞赛中的常用JAVA API :HashSet 和 TreeSet(转载)

    算法竞赛中的常用JAVA API :HashSet 和 TreeSet set set容器的特点是不包含重复元素,也就是说自动去重. HashSet HashSet基于哈希表实现,无序. add(E ...

  4. [数据结构-平衡树]普通 FHQ_Treap从入门到精通(注释比代码多系列)

    普通 FHQ_Treap从入门到精通(注释比代码多系列) 前提说明,作者写注释太累了,文章里的部分讲解来源于Oi-wiki,并根据代码,有部分增改.本文仅仅发布于博客园,其他地方出现本文,均是未经许可 ...

  5. SpringBoot开发十二-账号设置

    需求介绍-账号设置 账号设置里面的上传头像(文件) 首先请求必须是一个 POST 请求,其次表单的属性 enctype = "multipart/form-data" 然后就是利用 ...

  6. [WPF] 使用 MVVM Toolkit 构建 MVVM 程序

    1. 什么是 MVVM Toolkit 模型-视图-视图模型 (MVVM) 是用于解耦 UI 代码和非 UI 代码的 UI 体系结构设计模式. 借助 MVVM,可以在 XAML 中以声明方式定义 UI ...

  7. Lab: 2FA bypass using a brute-force attack:暴力破解双重验证靶场复盘(困难级别)

    靶场内容: This lab's two-factor authentication is vulnerable to brute-forcing. You have already obtained ...

  8. 常见web中间件漏洞(二)Apache漏洞

    Apache(总联想到武直那个)是最常见,使用人数最多的一款web服务器软件.跨平台,多扩展,开源,用过的人都说好 Apache的漏洞主要集中在解析漏洞这一块 1.未知扩展名解析漏洞 Apache的一 ...

  9. 通过Mssql提权的几种姿势

    本文记录针对SQL Server数据库,在拿到shell之后进行提权的5种方法. 一. xp_cmdshell提权 上面的数据库连接需要知道sa的密码,连接之后,在下面的sql命令处执行: exec ...

  10. MATLAB—面向复数和数组的基本运算

    文章目录 一.MATLAB基本运算说明 二.面向复数的计算特点 1.基础知识 2.对复数的基本操作 3.复数的开方问题 二.面向数组 1.数组的输入形式 2.对矩阵中的元素进行并行操作 3.利用数组运 ...