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异常处理和设计
在程序设计中,进行异常处理是非常关键和重要的一部分.一个程序的异常处理框架的好坏直接影响到整个项目的代码质量以及后期维护成本和难度.试想一下,如果一个项目从头到尾没有考虑过异常处理,当程序出错从哪里寻 ...
随机推荐
- 【JS 逆向百例】建筑市场监管平台企业数据
声明 本文章中所有内容仅供学习交流,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关. 逆向目标 目标:住房和城乡建设部&全国建筑市场监管公共服务平台的企业数据 主页:http: ...
- 基于go-restful实现的PoW算力池模型
最开始知道区块链是在17年初,当时因为项目压力不大,开始研究比特币源码.对于比特币中提到的Proof of Work,当时只是一眼带过,并没有详细查看过相关的代码.在最近的项目中,考虑到性能的要求,需 ...
- gRPC学习小札
gRPC 前言 为什么使用gRPC 传输协议 传输效率 性能消耗 gRPC入门 gRPC流 证书认证 使用根证书 gRPC实现token认证 和Web服务共存 验证器 REST接口 grpcurl工具 ...
- 8.3 C++ 定义并使用类
C/C++语言是一种通用的编程语言,具有高效.灵活和可移植等特点.C语言主要用于系统编程,如操作系统.编译器.数据库等:C语言是C语言的扩展,增加了面向对象编程的特性,适用于大型软件系统.图形用户界面 ...
- Python 多线程实现爬取图片
前阵子网上看到有人写爬取妹子图的派森代码,于是乎我也想写一个教程,很多教程都是调用的第三方模块,今天就使用原生库来爬,并且扩展实现了图片鉴定,图片去重等操作,经过了爬站验证,稳如老狗,我已经爬了几万张 ...
- Win32汇编:汇编版PE结构解析器
PE格式是Windows系统下最常用的可执行文件格式,有些应用必须建立在了解PE文件格式的基础之上,如可执行文件的加密与解密,文件型病毒的查杀等,熟练掌握PE文件结构,有助于软件的分析. 在PE文件中 ...
- 开发者必看!苹果App Store重大调整:App上架必须有ICP备案号
日前,苹果App Store迎来重大调整,即日起中国大陆上架的App必须具备有效的互联网信息服务提供者(ICP)备案号. 简单说,新App现在需要填写备案号才能提审,这就要求开发者应用需有备案号,另外 ...
- korean doll likeness模型|Japanese-doll-likeness模型获取及使用
1.模型 之前给大家写了Mac安装stable-diffusion-webui绘制AI妹子保姆级教程,教程在下面 [奶奶看了也不会]AI绘画 Mac安装stable-diffusion-webui绘制 ...
- spring-cloud 配置管理
作用: 实现配置热更新 实现网关配置热部署 配置模板 spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc ...
- Wamp MySQL 报错 Got a packet bigger than 'max_allowed_packet' bytes
点击电脑右下角wamp图标,然后进入mysql 下面的 my.ini 转移数据发现报这个错,字面意思允许的不够大.网上很多说法不起作用,解决方法如下: [mysqld] port=3306 expli ...