Java 异常处理(1) :try-catch-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 异常处理 :
13 * @author Bytezero·zhenglei! Email:420498246@qq.com
14 * @version
15 * @date 上午8:35:40
16 * @ 一:异常处理 : 抓抛模型
17 *
18 * 过程一: “抛”:程序在正常执行的过程中,一旦出现异常,就会在异常代码处生成
19 * 一个对应异常类的对象。并将此对象输出。
20 * 一旦抛出对象以后,其后的代码不再执行。
21 *
22 *
23 * 过程二:“抓”:可以理解为 异常的处理方式,:①try-catch-finally ②throws
24 *
25 *
26 * 二:try-catch-finally的使用
27 *
28 * try{
29 *
30 * //可能出现异常的代码
31 *
32 * }catch(异常类型1 变量名1){
33 *
34 * //处理异常的方式1
35 *
36 * }catch(异常类型2 变量名2){
37 *
38 * //处理异常的方式2
39 *
40 * }catch(异常类型3 变量名3){
41 *
42 * //处理异常的方式3
43 *
44 * }
45 * .....
46 * finally{
47 *
48 * //一定会执行的代码
49 * }
50 *
51 * 说明:
52 * 1.finally是可选的。
53 * 2.使用try将可能出现的代码包装起来,在执行过程中,一旦出现异常,就会生成
54 * 一个对应异常的对象,根据此对象的类型,去catch中进行匹配
55 * 3.一旦try中的异常对象匹配到某一个catch时,就进入catch中进行异常的处理。一旦
56 * 处理完成后,一旦处理完成,就跳出当前的try catc 结构(在没有写finally的情况)。继续
57 * 执行其后的代码
58 * 4.catch中的异常类型 如果没有子父类关系,则说声明在上,都可以
59 * catch中的异常类型 如果满足子父类关系,则要求子类一定声明在父类的上面,否则,报错
60 *
61 * 5.常用的异常对象处理方式:①String getMessage()
62 * ②printStackTrace()
63 *
64 * 6.在try结构中声明的变量,再出了try结构以后,就不能再被调用
65 *
66 * 7.try - catch-finally结构可以相互嵌套。
67 *
68 *
69 * 体会1:使用try-catch-finally处理编译异常时,使得程序在编译时就不在报错,但是运行时仍可能
70 * 报错,相当于我们使用try - catch -finally 将一个编译时可能出现的异常,延迟到运行时出现。
71 *
72 *
73 * 体会2:开发中,由于运行时异常比较常见,所有我们通常就不针对运行时异常编写try-catch-finally了,
74 * 针对于编译时异常,我们说一定要考虑异常的处理。
75 *
76 */
77 public class ExceptionTest2 {
78
79
80 @Test
81 public void test2() {
82
83 try {
84
85 File file = new File("hello.txt");
86 FileInputStream fis = new FileInputStream(file);
87
88 int data = fis.read();
89 while(data != -1) {
90 System.out.println((char)data);
91 data = fis.read();
92
93 }
94 fis.close();
95 }catch(FileNotFoundException e){
96
97 e.printStackTrace();
98
99 }catch(IOException e) {
100 e.printStackTrace();
101 }
102
103 }
104
105
106 @Test
107 public void test1() {
108
109 String str = "123";
110 str = "abc";
111 int num = 0;
112 try {
113 Integer.parseInt(str);
114
115 System.out.println("Hello----------1");
116
117 }catch(NullPointerException e) {
118 System.out.println("出现了空指针异常");
119
120 }catch(NumberFormatException e) {
121
122 // System.out.println("出现 数值转换 异常了");
123 //String getMessage():
124 //System.out.println(e.getMessage());
125 //printStackTrace
126 e.printStackTrace();
127
128 }catch(Exception e) {
129
130 System.out.println("出现了 异常 ");
131 }
132
133 //System.out.println(num); //不可以调用,因为出了 try 结构
134
135 System.out.println(num);
136
137 System.out.println("Hello----------2");
138
139 }
140
141
142
143
144
145 }
Java 异常处理(1) :try-catch-finally的使用的更多相关文章
- 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异常处理
异常概述 程序在运行中总会面临一些"意外"情况,良好的代码需要对它们进行预防和处理.大致来说,这些意外情况分三类: 交互输入 用户以非预期的方式使用程序,比如非法输入,不正当的操作 ...
- java异常处理(父子异常的处理)
我当初学java异常处理的时候,对于父子异常的处理,我记得几句话“子类方法只能抛出父类方法所抛出的异常或者是其子异常,子类构造器必须要抛出父类构造器的异常或者其父异常”.那个时候还不知道子类方法为什么 ...
- Java 异常处理
异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的. 比如说,你的代码少了一个分号,那么运行出来结果是提示是错误java.lang.Error:如果你用System.out ...
- 基础知识《十》java 异常捕捉 ( try catch finally ) 你真的掌握了吗?
本文转载自 java 异常捕捉 ( try catch finally ) 你真的掌握了吗? 前言:java 中的异常处理机制你真的理解了吗?掌握了吗?catch 体里遇到 return 是怎么处理 ...
- 《转载》Java异常处理的10个最佳实践
本文转载自 ImportNew - 挖坑的张师傅 异常处理在编写健壮的 Java 应用中扮演着非常重要的角色.异常处理并不是功能性需求,它需要优雅地处理任何错误情况,比如资源不可用.非法的输入.nul ...
- JAVA 异常处理机制
主要讲述几点: 一.异常的简介 二.异常处理流程 三.运行时异常和非运行时异常 四.throws和throw关键字 一.异常简介 异常处理是在程序运行之中出现的情况,例如除数为零.异常类(Except ...
- Java异常处理和设计
在程序设计中,进行异常处理是非常关键和重要的一部分.一个程序的异常处理框架的好坏直接影响到整个项目的代码质量以及后期维护成本和难度.试想一下,如果一个项目从头到尾没有考虑过异常处理,当程序出错从哪里寻 ...
随机推荐
- echarts饼图的配置 封装组件的注意点
1==>tooltip 类似饰hover效果提示框组件.光标放上去会触发 2==>formatter // 饼图 {a}(系列名称),{b}(数据项名称),{c}(数值), {d}(百分比 ...
- 玩一玩 golang 汇编(二)
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 上次玩 golang 汇编是使用了一个 python 的 ...
- # 再次推荐github 6.7k star开源IM项目OpenIM性能测试及消息可靠性测试报告
本报告主要分为两部分,性能测试和消息可靠性测试.前者主要关注吞吐,延时,同时在线用户等,即通常所说的性能指标.后者主要模拟真实环境(比如离线,在线,弱网)消息通道的可靠性. 先说结论,对于容量和性能: ...
- 物联网浏览器(IoTBrowser)-电子秤模块及二次驱动开发
本章介绍电子秤模块的示例功能以及二次开发称重驱动的代码,二次开发以顶尖OS2型号驱动为示例,实现方式与物联网浏览器(IoTBrowser)-顶尖OS2电子秤协议实现类似,不同的是电子秤只需要采集重量不 ...
- 深入探索OCR技术:前沿算法与工业级部署方案揭秘
深入探索OCR技术:前沿算法与工业级部署方案揭秘 注:以上图片来自网络 1. OCR技术背景 1.1 OCR技术的应用场景 OCR是什么 OCR(Optical Character Recogniti ...
- .NET NativeAOT 指南
.NET NativeAOT 指南 随着 .NET 8 的发布,一种新的"时尚"应用模型 NativeAOT 开始在各种真实世界的应用中广泛使用. 除了对 NativeAOT 工具 ...
- Docker从认识到实践再到底层原理(六-1)|Docker容器基本介绍+命令详解
前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助. 高质量博客汇总 然后就是博主最近最花时间的一 ...
- 关于DbgridEh滚动从表一起跟着滚动的分析
我的实现:
- Linux--Vi编辑命令(插入、替换、命令行模式、撤销)
1.进入插入模式(6个命令) [i] 从目前光标所在处插入 [I] 从目前光标 [a] 从当前光标所在的下一个字符处开始插入 [A] 从光标所在行的最后一个字符处开始插入 [o] 英文小写字母o,在目 ...
- NC16417 [NOIP2017]奶酪
题目链接 题目 题目描述 现有一块大奶酪,它的高度为 h,它的长度和宽度我们可以认为是无限大的,奶酪中间有许多半径相同的球形空洞.我们可以在这块奶酪中建立空间坐标系, 在坐标系中,奶酪的下表面为 z ...