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. TortoiseGit 常见问题汇总

    1.test分支修改后合并到master分支 1)切换本地分支到master分支 2)TortoiseGit --->  merge,选择远程分支test 提交到远程分支master 2.将远程 ...

  2. Rider调试时断点打不上(变灰色小叉)

    记录我在使用rider调试Unity的C#代码时遇到断点变灰色小叉叉,断点打不上/(不会进入断点)的几种解决办法 首先要确保你没有禁用所有的断点,然后再尝试使用本文的三种方法. 不要禁用所有断点 在R ...

  3. Windows配置PHP的MongoDB扩展

    环境 Windows 10 PHP 5.6.40/8.1.11 配置 下载MongoDB扩展 下载地址:https://pecl.php.net/package/mongodb 下载PHP版本对应的扩 ...

  4. 教你轻松用上ChatGPT

    最近ChatGPT大火呀,小伙伴们是不是在网上看到各种和ChatGPT有趣聊天的截图,奈何自己实力不够,被网络拒之门外,只能眼馋别人的东西.看别人玩,肯定不如自己玩一把舒服的啊.今天小卷就给大家汇总了 ...

  5. yapi tag的问题,暂时只保留一个tag

    yapi 的tag是需要先在网页上建立好,如:

  6. 【.net core学习一】.net 5.0 webapi部署

    服务器:windows server 2012 x64 1.安装IIS: 2.下载并安装 dotnet-hosting-5.0.13-win.exe 下载地址: https://dotnet.micr ...

  7. HASHTEAM香山杯2023WP

    目录 前言 misc 签到题 web PHP_unserialize_pro Re URL从哪儿来 hello python pwn Move pwthon 附上c-python调试方法 crypto ...

  8. NC22494 选点

    题目链接 题目 题目描述 有一棵n个节点的二叉树,1为根节点,每个节点有一个值wi.现在要选出尽量多的点. 对于任意一棵子树,都要满足: 如果选了根节点的话,在这棵子树内选的其他的点都要比根节点的值大 ...

  9. Python中`yield`关键字详解

    Python中`yield`关键字有什么用? Python中yield关键字有什么用? 它能做什么? 例如,我试图理解这段代码1: def _get_child_candidates(self, di ...

  10. performance schema 性能模式

    1.performance_schema简介 MySQL的performance schema 用于监控MySQL server在一个较低级别的运行过程中的资源消耗.资源等待等情况.performan ...