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的使用的更多相关文章

  1. Java 异常处理 try catch finally throws throw 的使用和解读(一)

    //最近的一个内部表决系统开发过程中,//发现对异常处理还存在一些模棱两可的地方,//所以想着整理一下//主要涉及到://1.try catch finally throws throw 的使用和解读 ...

  2. java异常处理之throw, throws,try和catch

    转自 http://blog.csdn.net/zhouyong80/article/details/1907799  程序运行过程中可能会出现异常情况,比如被0除.对负数计算平方根等,还有可能会出现 ...

  3. “崩溃了?不可能,我全 Catch 住了” | Java 异常处理

    前言 今天我们来讨论一下,程序中的错误处理. 在任何一个稳定的程序中,都会有大量的代码在处理错误,有一些业务错误,我们可以通过主动检查判断来规避,可对于一些不能主动判断的错误,例如 RuntimeEx ...

  4. 札记:Java异常处理

    异常概述 程序在运行中总会面临一些"意外"情况,良好的代码需要对它们进行预防和处理.大致来说,这些意外情况分三类: 交互输入 用户以非预期的方式使用程序,比如非法输入,不正当的操作 ...

  5. java异常处理(父子异常的处理)

    我当初学java异常处理的时候,对于父子异常的处理,我记得几句话“子类方法只能抛出父类方法所抛出的异常或者是其子异常,子类构造器必须要抛出父类构造器的异常或者其父异常”.那个时候还不知道子类方法为什么 ...

  6. Java 异常处理

    异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的. 比如说,你的代码少了一个分号,那么运行出来结果是提示是错误java.lang.Error:如果你用System.out ...

  7. 基础知识《十》java 异常捕捉 ( try catch finally ) 你真的掌握了吗?

    本文转载自  java 异常捕捉 ( try catch finally ) 你真的掌握了吗? 前言:java 中的异常处理机制你真的理解了吗?掌握了吗?catch 体里遇到 return 是怎么处理 ...

  8. 《转载》Java异常处理的10个最佳实践

    本文转载自 ImportNew - 挖坑的张师傅 异常处理在编写健壮的 Java 应用中扮演着非常重要的角色.异常处理并不是功能性需求,它需要优雅地处理任何错误情况,比如资源不可用.非法的输入.nul ...

  9. JAVA 异常处理机制

    主要讲述几点: 一.异常的简介 二.异常处理流程 三.运行时异常和非运行时异常 四.throws和throw关键字 一.异常简介 异常处理是在程序运行之中出现的情况,例如除数为零.异常类(Except ...

  10. Java异常处理和设计

    在程序设计中,进行异常处理是非常关键和重要的一部分.一个程序的异常处理框架的好坏直接影响到整个项目的代码质量以及后期维护成本和难度.试想一下,如果一个项目从头到尾没有考虑过异常处理,当程序出错从哪里寻 ...

随机推荐

  1. 【JS 逆向百例】拉勾网爬虫,traceparent、__lg_stoken__、X-S-HEADER 等参数分析

    关注微信公众号:K哥爬虫,持续分享爬虫进阶.JS/安卓逆向等技术干货! 声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后 ...

  2. TienChin 渠道管理-更新渠道接口开发

    ChannelController /** * 修改渠道 */ @PreAuthorize("hasPermission('tienchin:channel:edit')") @L ...

  3. .net5发布到Linux指南

    目录 Aspnetcore api 服务发布指南 一. 搭建nginx服务器 下载安装gcc编译库 下载安装pcre正则表达式库 下载安装openssl安全加密库 下载安装zlib解压库 下载解压并编 ...

  4. Cheat Engine 官方教程汉化

    CE修改器官方教程汉化版,区别于前款教程,官方教程中使用的是Tutorial64位程序,如下是经过翻译后的官方文档. 第一步:欢迎 当教程启动时,您应该会看到类似的东西,您只需在阅读帮助文本后单击&q ...

  5. AnyCAD程序无法启动的问题解决方法

    在某些电脑上会出现基于AnyCAD开发的程序无法启动的问题,如: System-ArgumentEcception: Please check the dependendes 解决方法 安装最新的VS ...

  6. 【树】N叉树的遍历【力扣589、力扣590】超详细的解释和注释

    说在前面 欢迎朋友们来到我的博客. 今天我们的重点是,N叉树的遍历. 今天,博主就带来两道经典的题目,领着大家理解N叉树的前序遍历和后序遍历! 当然,还想学习其它算法的朋友们,可以通过订阅博主的算法专 ...

  7. Oracle 19c RAC 自动应用RU补丁简明版

    环境:Oracle RAC(GI 19.3 + DB 19.3) 本文应用补丁信息, 19.16 RU: p34130714_190000_Linux-x86-64.zip 本文主要演示使用opatc ...

  8. Raise发现

    procedure TForm2.Button1Click(Sender: TObject); var MyWoKao: string; I: Integer; begin try try I := ...

  9. Delphi 字符串截取函数【LeftStr,RightStr,MidStr】

    如果要使用LeftStr,RightStr,MidStr必需引用系统单元StrUtils; 声明变量Str:string; Str:=HelloWorld; 1,LeftStr(Str,2)=He;/ ...

  10. ASP.NET Core分布式项目实战(Consent Controller Get请求逻辑实现)--学习笔记

    任务20:Consent Controller Get请求逻辑实现 接着上一节的思路,实现一下 ConsentController 根据流程图在构造函数注入 IClientStore,IResourc ...