Java 异常处理(1) : try-catch- finally中finally的使用
1 package com.bytezero.throwable;
2
3 import java.io.File;
4 import java.io.FileInputStream;
5 import java.io.FileNotFoundException;
6 import java.io.IOException;
7
8 import org.junit.Test;
9
10 /**
11 *
12 * @Description try-catch- finally中finally的使用:
13 * @author Bytezero·zhenglei! Email:420498246@qq.com
14 * @version
15 * @date 上午9:25:36
16 * @ 1.finally是可选的
17 * 2.finally中声明的是一定会被执行的代码,即使catch中又出现异常了,try中
18 * 有return语句,catch中有return语句等情况。
19 * 3.像数据库连接,输入输出流,网络编程Socket等资源,JVM是不能自动回收的,
20 * 我们需要自己手动的进行资源的释放,此时的资源释放,就需要声明在finally中。
21 *
22 *
23 *
24 */
25 public class FinallyTest {
26
27 @Test
28 public void test2() {
29 FileInputStream fis = null;
30 try {
31 File file = new File("hello.txt");
32 fis = new FileInputStream(file);
33
34 int data = fis.read();
35 while(data != -1) {
36 System.out.print((char)data);
37 data = fis.read();
38
39 }
40
41 } catch (FileNotFoundException e) {
42 // TODO Auto-generated catch block
43 e.printStackTrace();
44 } catch (IOException e) {
45 // TODO Auto-generated catch block
46 e.printStackTrace();
47 }finally {
48
49 try {
50 if(fis != null)
51 fis.close();
52 } catch (IOException e) {
53 // TODO Auto-generated catch block
54 e.printStackTrace();
55 }
56 }
57 }
58
59
60 @Test
61 public void testMethod(){
62 int num = method();
63 System.out.println(num);
64
65
66 }
67 public int method() {
68
69 try {
70
71 int[] arr = new int[10];
72 //System.out.println(arr[10]);
73 return 1;
74 }catch(ArrayIndexOutOfBoundsException e) {
75 e.printStackTrace();
76 return 2;
77 }finally {
78 System.out.println("我一定会被执行");
79 //return 3;
80 }
81
82 }
83
84
85
86 @Test
87 public void test1() {
88
89 try {
90 int a = 10;
91 int b = 0;
92 System.out.println(a / b);
93
94
95 }catch(ArithmeticException e) {
96 //e.printStackTrace();
97
98 int[] arr = new int[10];
99 System.out.println(arr[10]);
100
101 }catch(Exception e) {
102 e.printStackTrace();
103 }
104 //System.out.println("我 好帅啊~~");
105
106 finally {
107
108 System.out.println("我 好帅啊~~");
109 }
110
111
112 }
113
114 }



Java 异常处理(1) : try-catch- finally中finally的使用的更多相关文章
- Java异常处理机制 —— 深入理解与开发应用
本文为原创博文,严禁转载,侵权必究! Java异常处理机制在日常开发中应用频繁,其最主要的不外乎几个关键字:try.catch.finally.throw.throws,以及各种各样的Exceptio ...
- Java 异常处理 try catch finally throws throw 的使用和解读(一)
//最近的一个内部表决系统开发过程中,//发现对异常处理还存在一些模棱两可的地方,//所以想着整理一下//主要涉及到://1.try catch finally throws throw 的使用和解读 ...
- java异常处理之throw, throws,try和catch
转自 http://blog.csdn.net/zhouyong80/article/details/1907799 程序运行过程中可能会出现异常情况,比如被0除.对负数计算平方根等,还有可能会出现 ...
- “崩溃了?不可能,我全 Catch 住了” | Java 异常处理
前言 今天我们来讨论一下,程序中的错误处理. 在任何一个稳定的程序中,都会有大量的代码在处理错误,有一些业务错误,我们可以通过主动检查判断来规避,可对于一些不能主动判断的错误,例如 RuntimeEx ...
- java异常处理try catch finally
1 异常 1.1 异常处理的作用 在编程时,如果出现文件打开失败,读写文件就会异常退出.如果出现内存溢出错误,程序也会异常退出.如果不能对这些异常进行处理.程序则无法正常运行.所 ...
- 项目中java异常处理
一.java异常类介绍. Throwable: 有两个重要的子类:Exception(异常)和 Error(错误),二者都是 Java 异常处理的重要子类,各自都包含大量子类. 有一篇比较好的blog ...
- java 异常处理try+catch
在整个异常处理机制中,异常在系统中进行传递,传递到程序员认为合适的位置,就捕获到该异常,然后进行逻辑处理,使得项目不会因为出现异常而崩溃.为了捕获异常并对异常进行处理,使用的捕获异常以及处理的语法格式 ...
- java异常处理:finally中不要return
java异常处理:finally中不要return 复制代码 public class Ex1 { public static void main(String[] args) { System.ou ...
- Java异常处理场景中不同位置的返回值详细解析
Java 异常处理中的返回值在不同位置不同场景下是有一些差别的,这里需要格外注意 具体分以下两种场景: 1 finally语句块没有return语句,即当代码执行到try或者catch语句块中的ret ...
- Java异常处理中finally中的return会覆盖catch语句中的return语句
Java异常处理中finally中的return会覆盖catch语句中的return语句和throw语句,所以Java不建议在finally中使用return语句 此外 finally中的throw语 ...
随机推荐
- C# 使用字典将枚举转换为String
枚举 public enum ColorType { Red = 10, Blue = 20, Green = 30, Yellow = 40, } String var A1 = "AAA ...
- Django笔记七之ManyToMany和OneToOne介绍
本文首发于本人微信公众号:Hunter后端 原文链接:Django笔记七之ManyToMany和OneToOne介绍 ManyToMany 是一种多对多的关系,在用途和使用方法上和外键 Foreign ...
- 设计模式学习-使用go实现状态模式
状态模式 定义 优点 缺点 适用范围 代码实现 参考 状态模式 定义 状态模式(state):当一个条件的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类. 状态模式主要解决的是当控制一个对 ...
- 全套解决方案:中文NLP训练框架,支持大模型训练和文本生成,快速上手,海量训练数据!
全套解决方案:基于pytorch.transformers的中文NLP训练框架,支持大模型训练和文本生成,快速上手,海量训练数据! 1.简介 目标:基于pytorch.transformers做中文领 ...
- 21.11 Python 使用CRC图片去重
使用CRC32还可实现图片去重功能,如下FindRepeatFile函数,运行后通过对所有文件做crc校验并将校验值存储至CatalogueDict字典内,接着依次提取CRC特征值并将其存储至Cata ...
- vue + elementui 分页切换页面,缓存页码
问题场景 列表页面输入查询条件,选择第3页,点击详情进入详情页,从详情页返回时,默认列表页面页码重置为1:此时想要缓存该页码,有两种方式:可按业务场景使用 方式一:用vue自带的 keep-alive ...
- Java并发(八)----使用线程避免cpu占用100%
1.sleep 实现 在没有利用 cpu 来计算时,不要让 while(true) 空转浪费 cpu,这时可以使用 yield 或 sleep 来让出 cpu 的使用权给其他程序 while(true ...
- delphi中 注意一点,record 类型 参数默认是 值拷贝,class 参数 默认是传地址;值传递,指针传递、引用传递
作为函数的入参,若是record类型,默认是值拷贝,效率低,若要传指针,需要加 var ; 作为函数的入参,若是 class类型,默认是传地址,不需要加var unit Unit1; interfac ...
- Trino-登录WebUI页面报错,日志中提示:404 Not Foud. (Zookeeper占用8080端口,与Trino的端口冲突)
问题描述 启动Trino客户端执行show catalogs时报错:Error starting query at http://localhost:8080/v1/statement returne ...
- Linux-crontab的使用
一.什么是crontab?crontab 是有cron (crond) 这个系统服务来控制的,cron服务是linux的内置服务,类似于window下的计划任务,但它不会开机自动启动 二.如何使用?c ...