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异常处理和设计
在程序设计中,进行异常处理是非常关键和重要的一部分.一个程序的异常处理框架的好坏直接影响到整个项目的代码质量以及后期维护成本和难度.试想一下,如果一个项目从头到尾没有考虑过异常处理,当程序出错从哪里寻 ...
随机推荐
- Vue基础系统文章06---导入和导出
一.导入和导出 如果想要在一个Js文件中用另一个js文件的代码 1.将js文件中的变量和函数导出 let a = "aaaa" function show() { console. ...
- ABP 领域服务层学习记录
在ABP框架中有一个约定,所有的领域服务都应该继承并实现IDomainService接口,在领域层Core创建某一个实体的领域服务类,继承并实现IDomainService接口.在ABP框架中,领域服 ...
- dwm 美化
在之前的博客中,我们将arch linux这个系统进行了一些美化,当然也是仅仅做到能看这个地步,要说跟网上其他那些惊艳的特效对比,肯定是不如的.但是我一直秉持一个观点,美化应该适可而止,只要不是丑的你 ...
- 使用 arxiv-sanity &paperwithcode 跟进最新研究领域的文章
1.arxiv-sanity介绍 arxiv.org是一个非常大的预印本资源库,里面有大量的最新的论文,但缺点是浏览.搜索和排序不是很方便.这个资源库每天会更新大量的论文,如果通过手动搜索和浏览则效率 ...
- 19.4 Boost Asio 远程命令执行
命令执行机制的实现与原生套接字通信一致,仅仅只是在调用时采用了Boost通用接口,在服务端中我们通过封装实现一个run_command函数,该函数用于发送一个字符串命令,并循环等待接收客户端返回的字符 ...
- Odoo—货运管理—主表获取明细表数据计算结果
在开发货运管理模块的时候,用到了两张表:主表[waybill]和明细表[waybill.detail],主表存放运单主体信息,明细表存放运单货物信息,如下图所示. 上图中红色方框标记的是明细表中行内的 ...
- 单片机 IAP 功能基础开发篇之APP升级(三)
1 前言 上一篇单片机 IAP 功能基础开发篇之APP升级(二)讲到了单片机给 APP 程序升级具体的设计方案,这篇介绍的是升级进阶功能,如何在编译后在程序结束地址自动加上校验标志(可以通过脚本工具, ...
- RSAToken 的签名算法 SHA256withRSA、数字签名
数字签名的意义,看下百科:数字签名sign可不是对数据的加密和解密,而是生成签名和验证签名. https://baike.baidu.com/item/%E6%95%B0%E5%AD%97%E7%AD ...
- 《ASP.NET Core 微服务实战》-- 读书笔记(第4章)
第 4 章 后端服务 现实中的服务不可能处于真空之中,大多数服务都需要与其他服务通信才能完成功能. 我们将这些支持性服务称为后端服务,接下来我们将通过创建一个新的服务并修改之前的团队服务与这个服务通信 ...
- 如何使用ASP.NET Core 中的 Hangfire 实现作业调度
https://procodeguide.com/programming/hangfire-in-aspnet-core-schedule-jobs/ 如何使用ASP.NET Core 中的 Hang ...