第七章 异常的捕获及处理
一、异常的基本概念:
①定义:异常时导致程序中断的一种指令流,所有的异常
以类和对象的形式存在
②异常处理机制的优点:易于使用、可自行定义异常类、
处理抛出的异常同时又不会降低程序运行的速度
③异常处理格式: try{
//有可能出现异常的语句
}catch(异常类异常对象){
//编写异常的处理语句
}[ catch(异常类异常对象){
//编写异常的处理语句
}…]
[finally{
//一定会运行到的程序代码
}]
④常见异常类型:
数组越界异常:ArrayIndexOutOfBoundException
数字格式化异常:NumberFormatException
算术异常:ArithmeticException
⑤异常类的继承结构:
(父类) Throwable (子类1) Exception
(子类2) Error
⑥异常信息的输出方式:
1、System.out.println(异常对象);
2、异常对象 .printStackTrace();
⑦Java的异常处理机制:
1、一旦产生异常,则首先会产生一个异常类的实例
化对象
2、在try语句中对此异常类对象进行捕捉。
3、产生的异常对象与catch语句中的各个异常类型
进行匹配,如果匹配成功,则执行catch语句中
的代码
⑧利用向上转型的概念,可以让所有的异常对象都使用
Exception接收(所有捕获范围小的异常必须放在捕获范
围大的异常之前)
二、throws与throw关键字
①throws:
1、用throws声明的方法表示此方法不处理异常,
而交给方法调用处进行处理。而且在调用处必须
使用try…catch进行处理
2、使用格式:
public 返回值类型方法名称 (参数列表…) throws 异常类{}
3、主方法原则上也可以使用throws,但最好不要用
②throw:
1、直接使用throw关键字人为地抛出一个异常,抛
出时直接抛出异常类的实例化对象即可
2、throw一般都与try…catch、throws联合使用
3、finally语句块中尽可能不要出现throw和return
三、Exception类与RuntimeException类
①继承关系: Exception (上一个是下一个的父类)
RuntimeException
IllegalArgumentException
NumberFormatException
②Exception在程序中必须使用try…catch进行处理
③RuntimeException可以不使用try…catch进行处理,但如
果有异常产生,肯定会导致程序中断执行。(最好还是用
try…catch进行处理)
四、自定义异常类:只需要继承Exception类即可
五、断言:
①断言就是肯定某一个结果的返回值是正确的,如果最终
此结果的返回值是错误的,则通过断言检查会提示错误
信息
②定义格式: assert boolean 表达式;
assert boolean 表达式:详细的信息;
③运行格式:javac 类名.java
java –ea 类名
④断言的使用:
1、虽然断言的返回值是boolean值,但是并不能将
其作为条件判断语句
2、断言虽然有检查运行结果的功能,但是在开发中
并不提倡使用断言
相关推荐
Java高级程序设计(第二版)--第2章-异常处理全文共19页,当前为第7页。 二、异常处理机制 为了解决这种需要由程序员承担程序出错情况判断的不正规处理模式所带来的困难和阻碍,Java引入了异常处理机制,通过代码运行...
面向对象程序设计-实验5异常处理.doc )
第7章[课程代码] Eclipse开发工具doc 第8章[课程代码] Java新特性.doc 第9章[课程代码]多程,doc 第10章[课程代码] Java常用类库,doc 第11章[课程代码] Java lO编程doc 第12章[课程代码] Java网络编程doc 第13章[课程...
第7章 异常处理 7.1 异常基本概念介绍 7.2 异常的抛出和捕获 7.3 创建自己的异常类 第8章 输入输出 8.1 输入输出概述 8.2 各种输入输出流 8.3 文件随机存取: RandomAccessFile类 第9章 多线程与Applet 9.1.1 ...
C++编程思想 第二版 第二卷 中文... 第7章 通用容器 第三部分 专题 第8章 运行时类型识别 第9章 多重继承 第10章 设计模式 第11章 并发 附录 附录A 推荐读物 附录B 其他 索引
第7章 过滤数据流。这⼀章介绍如何让流过数据管道的数据根据规则 筛选掉⼀部分,在这⼀章还会介绍⽤筛选法进⾏回压控制的⽅法。 第8章 转化数据流。这⼀章介绍对流经数据管道的数据进⾏格式转化 的⽅法,包括RxJS...
第7章 模板 7.1 类模板 7.1.1 成员和友元定义 7.1.2 模板实例化 7.1.3 模板参数 7.1.4 类型等价 7.1.5 用户定义的特化 7.1.6 特化顺序 7.2 函数模板 7.2.1 函数模板参数 7.2.2 函数模板...
第7章 迭代器与泛型for 7.1 迭代器与闭包 7.2 范性for的语义 7.3 无状态的迭代器 7.4 多状态的迭代器 7.5 真正的迭代器 第8章 编译•运行•错误信息 8.1 require函数 8.2 C Packages 8.3 错误 8.4 异常和错误处理 ...
第7章 结构体 136 定义结构体 136 创建结构体 139 第8章 接口 144 实现接口 145 访问接口方法 154 重定义接口的实现 162 显式接口实现 166 第9章 数组、索引器与集合 176 数组 176 foreach语句 181 索引器 197 集合...
【目录信息】 第一部分 建立稳定的系统 第1章 异常处理 2 1.1 传统的错误处理 2 1.2 抛出异常 4 1.3 捕获异常 5 1.3.1 try块 5 1.3.2 异常处理器 5 1.3.3 终止和恢复 6 1.4 异常匹配 7 1.4.1 捕获所有异常 8 1.4.2 ...
第7章 结构体 136 定义结构体 136 创建结构体 139 第8章 接口 144 实现接口 145 访问接口方法 154 重定义接口的实现 162 显式接口实现 166 第9章 数组、索引器与集合 176 数组 176 foreach语句 181 索引器 197 集合...
第7章 结构体 136 定义结构体 136 创建结构体 139 第8章 接口 144 实现接口 145 访问接口方法 154 重定义接口的实现 162 显式接口实现 166 第9章 数组、索引器与集合 176 数组 176 foreach语句 181 索引器 197 集合...
第7章继承和多态 第8章实验指导2 第9章异常处理 第10章Java常用API 第11章Java IO操作 第12章多线程开发 第13章反射技术 第14章实验指导3 下篇UML 第15章UML入门 第16章用例图 第17章类图和对象图...
第7章 原生线程 第8章 POSIXSocketAPI:面向连接的通信 第9章 POSIXSocketAPI:无连接的通信 第10章 POSIXSocketAPI:本地通信 第11章 支持C++ 第12章 原生图形API 第13章 原生音频API 第14章 程序概要分析和NEON...
第7章 Ping程序 61 7.1 引言 61 7.2 Ping程序 61 7.2.1 LAN输出 62 7.2.2 WAN输出 63 7.2.3 线路SLIP链接 64 7.2.4 拨号SLIP链路 65 7.3 IP记录路由选项 65 7.3.1 通常的例子 66 7.3.2 异常的输出 68 7.4 IP时间戳...
第 7章到第12 章 第三篇 集中在 C++为基于过程化的程序设计所提供的支持上 第 7 章介绍C++函数机制 函数封装了一组操作 它们通常形成一项单一的任务 如 print() 名 字后面的括号表明它是一个函数 关于程序域和...
第7章 内部类 2课时 学会定义内部类,能够在外部类中或外部类外实例化内部类;定义静态内部类和实例化。 通过this引用当前内部类和外部类的实例。 通过扩展类和实现接口两种方式...
12.4.1 异常捕获处理语句块 12.4.2 必须执行语句块 12.4.3 必须执行语句的意外 12.5 异常抛出 12.5.1 异常抛出概念 12.5.2 throw 12.5.3 throws 12.5.4 抛出异常 12.6 自定义异常 12.6.1 创建用户自定义...