JAVA学习:异常.ppt
合集下载
《超全Java课件PPT精选》

接口和抽象类
掌握Java中接口和抽象类的概念和用法,了解如何定义接口和抽象类,以及如 何实现接口和继承抽象类。
异常处理
学习Java中的异常处理机制,掌握如何捕获和处理异常,以及如何使用trycatch-finally语句保护程序。
输入输出流
了解Java中的输入输出流,学习如何读取和写入文件,以及如何进行标准输入输出和网络通信。
多线程编程
深入学习Java中的多线程编程,了解线程的概念和生命周期,学习如何创建和 管理线程,以及如何处理线程间的同步与通信。
GUI编程
学习如何使用Java的GUI库创建图形用户界面,掌握窗口、按钮、文本框等组件的使用方法,以及事件处理和 布局管理。
网络编程
了解Java中的网络编程基础,学习如何使用Socket进行网络通信,以及如何创 建客户端和服务器端的网络应用程序。
数据库连接和操作
学习Java中数据库的连接和操作,了解如何使用JDBC进行数据库的增删改查,以及事务处理和防止SQL注入等 安全技术。
Java开发环境及工具使用
掌握Java开发所需的开发环境和常用工具,了解如何安装和配置Java开发环境,以及如何使用常用的集成开发 环境和调试工具。
《超全Java课件-PPT精选》
在这份《超全Java课件-PPT精选》中,我们将深入探讨Java的所有细节。从基 础语法到高级主题,这份课件将帮助您深入了解Java编程。
Java基础语法概述
了解Java语言的起源和发展,掌握Java程序的基本结构和语法规则,并学习如 何编写和运行您的第一个Java程序。
数组和数组操作
掌握Java中数组的定义和使用,学习如何进行数组的初始化、遍历和排序,以 及常见的数组操作和算法。
java课件 ppt

03
02
控制流程语句
if语句、switch语句、for循环、 while循环等
循环语句
for循环和while循环的语法和用法, 循环条件的设置方法
04
数组和集合
数组
数组的声明和初始化,数组元素的访问和修 改,数组的遍历等
集合的常用操作
添加元素、删除元素、遍历集合等操作的方 法和实现
集合框架
List、Set、Map等接口及其实现类,如 ArrayList、HashSet、HashMap等
02
详细描述
03
• 封装:封装是指将数据和 操作封装到一个对象中, 以实现数据的隐藏和保护 。通过访问控制符( public、protected、 private)可以限制对类的 成员的访问权限。
04
• 访问控制:访问控制是指 限制对类成员的访问权限 ,以确保数据的完整性和 安全性。在Java中,可以 使用访问控制符来限制对 类的成员的访问权限。
掌握Java GUI事件处理的基本 原理和机制,了解事件源、事 件监听器、事件对象等概念。
Java Web开发基础
Java Web开发 概述
了解Java Weຫໍສະໝຸດ 开发的基本概 念、原理和框架。Servlet基础
掌握Servlet的基本使用方法 ,如生命周期、请求响应模 型等。
JSP技术
掌握JSP的基本使用方法, 如页面指令、内置对象、表 达式等。
集合的遍历方式
使用for循环、迭代器等方法遍历集合中的 元素
异常处理和日志记录
异常处理
try-catch语句块,异常的捕 获和处理方法,finally语句
块等
1
异常的类型
异常的继承关系,异常的分 类和定义,异常的抛出和处
02
控制流程语句
if语句、switch语句、for循环、 while循环等
循环语句
for循环和while循环的语法和用法, 循环条件的设置方法
04
数组和集合
数组
数组的声明和初始化,数组元素的访问和修 改,数组的遍历等
集合的常用操作
添加元素、删除元素、遍历集合等操作的方 法和实现
集合框架
List、Set、Map等接口及其实现类,如 ArrayList、HashSet、HashMap等
02
详细描述
03
• 封装:封装是指将数据和 操作封装到一个对象中, 以实现数据的隐藏和保护 。通过访问控制符( public、protected、 private)可以限制对类的 成员的访问权限。
04
• 访问控制:访问控制是指 限制对类成员的访问权限 ,以确保数据的完整性和 安全性。在Java中,可以 使用访问控制符来限制对 类的成员的访问权限。
掌握Java GUI事件处理的基本 原理和机制,了解事件源、事 件监听器、事件对象等概念。
Java Web开发基础
Java Web开发 概述
了解Java Weຫໍສະໝຸດ 开发的基本概 念、原理和框架。Servlet基础
掌握Servlet的基本使用方法 ,如生命周期、请求响应模 型等。
JSP技术
掌握JSP的基本使用方法, 如页面指令、内置对象、表 达式等。
集合的遍历方式
使用for循环、迭代器等方法遍历集合中的 元素
异常处理和日志记录
异常处理
try-catch语句块,异常的捕 获和处理方法,finally语句
块等
1
异常的类型
异常的继承关系,异常的分 类和定义,异常的抛出和处
java完整课件

2024/1/26
Java语言的历史与发展
01
介绍Java语言的起源、发展历程以及在不同领域的应用。
Java语言的特点
02
详细阐述Java语言的跨平台性、面向对象、安全性等特点。
Java与C的对比
03
分析Java与C在语法、编程范式、内存管理等方面的异同点。
4
开发环境搭建
2024/1/26
JDK的安装与配置
集合框架中的常用接口和类
Java集合框架中常用的接口包括Collection、List、Set和Map,常 用的实现类包括ArrayList、LinkedList、HashSet、TreeSet和 HashMap等。
24
List接口及其实现类
2024/1/26
01
List接口的定义和特点
List接口是Java集合框架中的一个重要接口,它表示一种 有序的集合,可以包含重复元素。List接口提供了丰富的 操作方法来管理元素,如添加、删除、获取和遍历等。
字节流与字符流
学习使用字节流和字符流进行文件的读写操作,理解其使用场景和区 别。
缓冲流
掌握缓冲流的使用,理解其在提高文件读写效率方面的作用。
对象序列化与反序列化
了解对象序列化和反序列化的概念,学习使用ObjectOutputStream 和ObjectInputStream进行对象的写入和读取。
20
Runnable接口是Java中另一种实现多线程编程的方式,它定义了一个run()方法,用于指定线程要执行的任务。实现 Runnable接口的类可以创建多个实例,并且每个实例都可以作为一个独立的线程运行。
Thread类与Runnable接口的比较
Thread类和Runnable接口都可以实现多线程编程,但它们的使用方式和适用场景略有不同。Thread类 适合于简单的多线程任务,而Runnable接口更适合于复杂的、需要共享资源的多线程任务。
Java语言的历史与发展
01
介绍Java语言的起源、发展历程以及在不同领域的应用。
Java语言的特点
02
详细阐述Java语言的跨平台性、面向对象、安全性等特点。
Java与C的对比
03
分析Java与C在语法、编程范式、内存管理等方面的异同点。
4
开发环境搭建
2024/1/26
JDK的安装与配置
集合框架中的常用接口和类
Java集合框架中常用的接口包括Collection、List、Set和Map,常 用的实现类包括ArrayList、LinkedList、HashSet、TreeSet和 HashMap等。
24
List接口及其实现类
2024/1/26
01
List接口的定义和特点
List接口是Java集合框架中的一个重要接口,它表示一种 有序的集合,可以包含重复元素。List接口提供了丰富的 操作方法来管理元素,如添加、删除、获取和遍历等。
字节流与字符流
学习使用字节流和字符流进行文件的读写操作,理解其使用场景和区 别。
缓冲流
掌握缓冲流的使用,理解其在提高文件读写效率方面的作用。
对象序列化与反序列化
了解对象序列化和反序列化的概念,学习使用ObjectOutputStream 和ObjectInputStream进行对象的写入和读取。
20
Runnable接口是Java中另一种实现多线程编程的方式,它定义了一个run()方法,用于指定线程要执行的任务。实现 Runnable接口的类可以创建多个实例,并且每个实例都可以作为一个独立的线程运行。
Thread类与Runnable接口的比较
Thread类和Runnable接口都可以实现多线程编程,但它们的使用方式和适用场景略有不同。Thread类 适合于简单的多线程任务,而Runnable接口更适合于复杂的、需要共享资源的多线程任务。
JAVA自学教程(完整版)PPT课件(2024)

二分查找
针对有序数组,每次取中间元 素与目标元素比较,缩小查找 范围
12
03 面向对象编程基础
2024/1/27
13
类与对象的概念
类的定义
类是对象的模板,它定 义了对象的属性和方法 。
2024/1/27
对象的概念
对象是类的实例,具有 类定义的属性和行为。
类与对象的关系
类是对象的抽象描述, 而对象是类的具体实现 。
2024/1/27
32
Socket通信原理及示例
Socket通信原理
理解Socket通信的基本原理,掌握Socket 类和ServerSocket类的使用。
TCP编程
学习基于TCP协议的Socket通信,实现客户 端与服务器之间的数据传输。
多线程处理
掌握多线程在Socket通信中的应用,提高服 务器的并发处理能力。
TreeSet类的特点和使用
TreeSet是Set接口的另一个常用实现类,它基于红黑树实 现。TreeSet会对元素进行排序,因此它适用于需要排序的 场景。
26
Map接口及其实现类
01
Map接口的定义和特 点
Map接口表示一种键值对的映射关系 。Map中的每个元素都包含一个键和 一个值,键在Map中是唯一的。
学习ReentrantLock锁的使用,了解 公平锁与非公平锁的区别。
2024/1/27
等待/通知机制
掌握Object类的wait()、notify()和 notifyAll()方法的使用,实现线程间 的通信。
死锁与避免
了解死锁的概念及产生条件,学习如 何避免死锁的发生。
31
网络编程基础
网络编程概述
ArrayList类的特点和使用
第6章-异常处理ppt课件(全)

6.1 了解异常
❖ 任务3:了解异常类常用的方法 【任务内容】了解异常类常用的方法 【能力目标】掌握异常类常用的方法
public class ExceptionDemo { public static void main(String[] args) { String strPrice = "20"; try { //进行数据类型转换时,parseFloat方法有可能出现异常 float fprice = Float.parseFloat(strPrice); } catch (NumberFormatException nfe) { System.err.println("Exception:" + nfe.getMessage()); System.err.println("Exception:" + nfe.toString()); nfe.printStackTrace(); } }
❖
}
❖ catch( ArithmeticException e )
❖
{ System.out.println("\t捕获异常: "+e);
}
❖ catch( ArrayIndexOutOfBoundsException e )
❖
{ System.out.println("\t捕获异常:"+e.getMessage( )); }
程序中的错误可能来自于编译错误和运行错误。 编译错误是由于所编写的程序存在语法问题,未 能通过由源代码到目标代码的编译过程而产生的 错误,它将由语言的编译系统负责检测和报告; 运行错误是在程序的运行过程中产生的错误。
异常处理

三、抛出异常
前面只是说明了如何获取Java运 前面只是说明了如何获取Java运 Java 行时被系统引发的异常。同时, 行时被系统引发的异常。同时,程序 还可以用throw语句引发明确的异常, throw语句引发明确的异常 还可以用throw语句引发明确的异常, throws语句来标明一个成员函数可 用throws语句来标明一个成员函数可 能抛出的各种异常。
Exception类的主要方法
1.public Exception() 2.public Exception(String s) 3.public String toString()//返回异常类的信息 4.public void printStackTrace()//打印输出当前 例外对象的堆栈使用轨迹,也就是程序先后 调用执行了哪些对象或类的哪些方法,使得 运行过程中产生了这个例外对象。
四、自定义异常
尽管Java的内置异常处理大多数常见错误 尽管Java的内置异常处理大多数常见错误,你 Java的内置异常处理大多数常见错误, 也许希望创建自己的异常类型来处理所应用的特 殊情况。做到这点非常简单:只要定义 Exception的一个子类就可以了 Exception当然 的一个子类就可以了( Exception 的一个子类就可以了 ( Exception 当然 Throwable的一个子类 的一个子类) 是 Throwable 的一个子类 ) 。 你的子类不需要实 际执行什么——它们在类型系统中的存在允许你 际执行什么 它们在类型系统中的存在允许你 把它们当成异常使用。 把它们当成异常使用。 Exception类自己没有定义任何方法。当然, Exception类自己没有定义任何方法。当然, 类自己没有定义任何方法 它继承了Throwable提供的一些方法。 Throwable提供的一些方法 它继承了Throwable提供的一些方法。因此所有 异常,包括你创建的,都可以获得Throwable Throwable定 异常,包括你创建的,都可以获得Throwable定 义的方法, 义的方法,
第11章 异常处理

北京源智天下科技有限公司
1-11
联系方式:
11.2.2 未捕获异常
• 在异常中,除了捕获异常以外的都是未捕获异常。未捕获异常包 括Error类以及它的直接子类和间接子类和RuntimeException类以 及它的直接子类和间接子类。Error类以及它的子类通常是由硬件 运行错误所导致的错误。这些是很严重的错误,通常是不能通过 程序来进行修改的。RuntimeException类以及它的子类通常是程 序运行时引起的异常。 • 提示:Error类以及它的子类通常是由硬件运行错误所导致的错误 。这些是很严重的错误,通常是不能通过程序来进行修改的。 • 前面使用最多的就是数组下标越界异常,该异常就是未捕获异常 。未捕获异常是可以不进行异常处理的,如果不进行异常处理编 译的时候是完全没有问题的,但是在运行时会发生错误。
北京源智天下科技有限公司
1-7
联系方式:
• • • • • • • • • • • • • •
finally语句的语法形式如下所示。 try { //此处是可能出现异常的代码 } catch(Exception e) { //此处是如果发生异常的处理代码 } finally { //此处是肯定被执行的代码 } finally语句虽然在程序中肯定执行,但是为了确保知识的严谨性,这里也给出了几 个可能会中断finally语句执行的情况。首先是finally语句中本身就产生异常;再者 就是执行finally语句的线程死亡,线程的问题会在后面的学习中学习到;还有一种 情况,那就是程序执行到finally语句时停电了。
北京源智天下科技有限公司
1-9
联系方式:
11.2 异常的分类
• 可以对异常进行分类的,从大的角度将异常分为捕获异常和未捕 获异常两类。在Java类库中有一个叫做Throwable类,该类继承于 Object类。所有的异常类都是继承Throwable类,Throwable类有 两个直接子类,Error类和Exception类。在Exception类中又有一 个RuntimeException类。在Exception类中的直接和间接子类中除 去RuntimeException类的直接和间接子类,都是捕获异常。其他 的都为未捕获异常。
1-11
联系方式:
11.2.2 未捕获异常
• 在异常中,除了捕获异常以外的都是未捕获异常。未捕获异常包 括Error类以及它的直接子类和间接子类和RuntimeException类以 及它的直接子类和间接子类。Error类以及它的子类通常是由硬件 运行错误所导致的错误。这些是很严重的错误,通常是不能通过 程序来进行修改的。RuntimeException类以及它的子类通常是程 序运行时引起的异常。 • 提示:Error类以及它的子类通常是由硬件运行错误所导致的错误 。这些是很严重的错误,通常是不能通过程序来进行修改的。 • 前面使用最多的就是数组下标越界异常,该异常就是未捕获异常 。未捕获异常是可以不进行异常处理的,如果不进行异常处理编 译的时候是完全没有问题的,但是在运行时会发生错误。
北京源智天下科技有限公司
1-7
联系方式:
• • • • • • • • • • • • • •
finally语句的语法形式如下所示。 try { //此处是可能出现异常的代码 } catch(Exception e) { //此处是如果发生异常的处理代码 } finally { //此处是肯定被执行的代码 } finally语句虽然在程序中肯定执行,但是为了确保知识的严谨性,这里也给出了几 个可能会中断finally语句执行的情况。首先是finally语句中本身就产生异常;再者 就是执行finally语句的线程死亡,线程的问题会在后面的学习中学习到;还有一种 情况,那就是程序执行到finally语句时停电了。
北京源智天下科技有限公司
1-9
联系方式:
11.2 异常的分类
• 可以对异常进行分类的,从大的角度将异常分为捕获异常和未捕 获异常两类。在Java类库中有一个叫做Throwable类,该类继承于 Object类。所有的异常类都是继承Throwable类,Throwable类有 两个直接子类,Error类和Exception类。在Exception类中又有一 个RuntimeException类。在Exception类中的直接和间接子类中除 去RuntimeException类的直接和间接子类,都是捕获异常。其他 的都为未捕获异常。
java ppt课件

持续集成与持续部署
CI/CD是现代软件开发的必备技能。Java有许多 成熟的CI/CD工具和框架,如Jenkins、Docker等 ,可以帮助开发者实现自动化测试、自动化构建 和自动化部署。
微服务架构
微服务架构是近年来的一种热门技术趋势。Java 凭借其稳定性和性能优势,在微服务架构中有着 广泛的应用。通过使用Spring Boot等框架,开发 者可以更轻松地构建和部署微服务。
丰富的API库:Java语言 拥有庞大的 API(Application Programming Interface)库,涵盖了从 数据结构、数学函数、 图形和声音处理到数据 库连接等各个方面。这 使得Java语言可以方便 地调用各种底层功能, 大大提高了开发效率。
安全性:Java语言具有 严格的数据类型检查和 异常处理机制,可以有 效防止程序出现错误。 此外,Java的内存管理 也是自动的,可以避免 内存泄漏等问题。
Web开发
Java的Web开发框架如Spring、Struts和Hibernate等提 供了强大的功能,使得Java在Web开发领域也具有广泛 的应用。
大数据开发
Java在大数据领域也有广泛的应用,例如使用Hadoop和 Spark等框架进行数据处理和分析。
02
CATALOGUE
java语言基础知识
06
CATALOGUE
java语言的性能优化与安全防护
java程序的性能优化技巧
01
02
03
04
代码优化
编写高效、简洁的代码,避免 冗余和重复,减少不必要的计
算和操作。
内存管理
合理分配和释放内存,避免内 存泄漏和溢出,提高内存使用
效率。
多线程编程
CI/CD是现代软件开发的必备技能。Java有许多 成熟的CI/CD工具和框架,如Jenkins、Docker等 ,可以帮助开发者实现自动化测试、自动化构建 和自动化部署。
微服务架构
微服务架构是近年来的一种热门技术趋势。Java 凭借其稳定性和性能优势,在微服务架构中有着 广泛的应用。通过使用Spring Boot等框架,开发 者可以更轻松地构建和部署微服务。
丰富的API库:Java语言 拥有庞大的 API(Application Programming Interface)库,涵盖了从 数据结构、数学函数、 图形和声音处理到数据 库连接等各个方面。这 使得Java语言可以方便 地调用各种底层功能, 大大提高了开发效率。
安全性:Java语言具有 严格的数据类型检查和 异常处理机制,可以有 效防止程序出现错误。 此外,Java的内存管理 也是自动的,可以避免 内存泄漏等问题。
Web开发
Java的Web开发框架如Spring、Struts和Hibernate等提 供了强大的功能,使得Java在Web开发领域也具有广泛 的应用。
大数据开发
Java在大数据领域也有广泛的应用,例如使用Hadoop和 Spark等框架进行数据处理和分析。
02
CATALOGUE
java语言基础知识
06
CATALOGUE
java语言的性能优化与安全防护
java程序的性能优化技巧
01
02
03
04
代码优化
编写高效、简洁的代码,避免 冗余和重复,减少不必要的计
算和操作。
内存管理
合理分配和释放内存,避免内 存泄漏和溢出,提高内存使用
效率。
多线程编程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
演示:示例 1 10
finally 块
try、catch 和 finally 块的执行流程
try 块
异常
catch 块
无异常
finally 块
11
异常处理块的一般形式
try{ // 要监控错误的代码块 methodGeneratingException();
} catch (Exception e) { // Exception e 的异常处理程序
将被忽略
try{ …….
} catch(ArrayIndexOutOfBoundsException e) { ……
} catch(Exception e) { ……
}
13
异常类的层次结构
Object
Throwable 具有两个子类,它们是
ExceptionT:hr处ow理abl用e 户程序应当捕获的异常情况 Error:Error 类的异常为内部错误,因此在正常情 Er况ror下不期望用户的程序捕获E它xc们eption
不能加载所需的类 数字转化格式异常,比如字符串到 float 型 数字的转换无效
I/O 异常的根类
FileNotFoundException
找不到文件
EOFException
文件结束
InterruptedException
线程中断
8
try 和 catch 块 2-1
代码块
单元
try catch
引发
要监控的程序语句包含在此块中
try
释放资源等
finally
catch
以合理的方式 捕获和处理异常
throw
手动引发异常
throws
指定由方法引发的异常
7
Java异常类
异常
说明
Exception
异常层次结构的根类
RuntimeException
许多 ng 异常的基类
ArithmeticException
return result; } public static void main(String[] args) {
程序突然终止并将控制交 给操作系统
ExceptionRaised obj = new ExceptionRaised();
int result = obj.calculate(9, 0);
AWTError ThreadDeath
4
什么是异常?
• 在运行时发生的错误
public class ExceptionRaised {
异常情况
public ExceptionRaised() {
} public int calculate( int operand1, int operand2) {
异常
int result = operand1 / operand2;
} finally{ // 在 try 结束前要执行的代码块 cleanup();
}
12
多重 catch 块3-1
一段代码可能会生成多个异常 当引发异常时,会按顺序来查看每个 catch 语句,并
执行第一个类型与异常类型匹配的语句 执行其中的一条 catch 语句之后,其他的 catch 语句
System.out.println(result);
}
}
5
处理异常 2-1
处理运行时错误的伪代码
……… IF B IS ZERO GO TO ERROR C=A/B PRINT C GO TO EXIT
ERROR: 处理异常的块 “以零作除数,代码导致错误”
DISPLAY
EXIT: END
6
处理异常 2-2
在编程中,错误总是难免会发生的 关键在于发生错误之后,能否捕获错误,如何捕获
错误,程序能否从错误中恢复 异常处理的目的,不是要避免异常,而是在异常发
生时,设法使损失降低到最小
3
异常处理的基本概念
错误与异常
错误:编译程序时发现的问题,编译时会出现错误 或警告。当运行程序时,错误已经不存在
异常:编译时没有发现,只有在运行程序的时候, 在某种特定的情况下,程序执行出现错误,这时会 发生异常
算术错误情形,如以零作除数
IllegalArgumentException
方法接收到非法参数
ArrayIndexOutOfBoundException 数组大小小于或大于实际的数组大小
NullPointerException
尝试访问 null 对象成员
ClassNotFoundException NumberFormatException IOException
异常
程序控制
执行 catch 后程序 继续正常运行
9
try 和 catch 块 2-2
tpryub和lic clcasastAcrhith块me的ticE用xce法ption {
/** 构造方法. */ public ArithmeticException() { clas/}p*su* Eb构lxicc造es方ptati法toicn.Rv*oa/ iidsemda{in(String[] args) { puEbxlcicepEtxiocneRptaioisneRdaoisbejd=()ne{w ExceptionRaised(); } try { /******这@ @ @}c个ppr/iSSane*aatyyttc方定rrusshraartte法mmee义n(smmEui运变oonxl..ttppoec行量=eeurerrr返tp.时o.aaprptbiennr回or将ijdsdin.nncu21除t会tlaellntn除除l法)(c产以(“ur{发法法e的l生存as生中中t结u一e储l异(t的的果)9个结;,常分分异0果:)子母;常. "*/. + e.toString()); */ e.printStackTrace(); pu} blic int calculate(int operand1, int operand2) { } int result = operand1 / operand2; } return result; } }
异常
目标
理解异常的概念 运用 try 块、catch 块和 finally 块处理异常 运用多重 catch 块处理异常 运用嵌套 try/catch 块处理异常 运用关键字 throw 和 throws 处理异常 运用JAVA编写和使用自定义异常
2
异常处理的基本Biblioteka 念异常处理机制的作用
finally 块
try、catch 和 finally 块的执行流程
try 块
异常
catch 块
无异常
finally 块
11
异常处理块的一般形式
try{ // 要监控错误的代码块 methodGeneratingException();
} catch (Exception e) { // Exception e 的异常处理程序
将被忽略
try{ …….
} catch(ArrayIndexOutOfBoundsException e) { ……
} catch(Exception e) { ……
}
13
异常类的层次结构
Object
Throwable 具有两个子类,它们是
ExceptionT:hr处ow理abl用e 户程序应当捕获的异常情况 Error:Error 类的异常为内部错误,因此在正常情 Er况ror下不期望用户的程序捕获E它xc们eption
不能加载所需的类 数字转化格式异常,比如字符串到 float 型 数字的转换无效
I/O 异常的根类
FileNotFoundException
找不到文件
EOFException
文件结束
InterruptedException
线程中断
8
try 和 catch 块 2-1
代码块
单元
try catch
引发
要监控的程序语句包含在此块中
try
释放资源等
finally
catch
以合理的方式 捕获和处理异常
throw
手动引发异常
throws
指定由方法引发的异常
7
Java异常类
异常
说明
Exception
异常层次结构的根类
RuntimeException
许多 ng 异常的基类
ArithmeticException
return result; } public static void main(String[] args) {
程序突然终止并将控制交 给操作系统
ExceptionRaised obj = new ExceptionRaised();
int result = obj.calculate(9, 0);
AWTError ThreadDeath
4
什么是异常?
• 在运行时发生的错误
public class ExceptionRaised {
异常情况
public ExceptionRaised() {
} public int calculate( int operand1, int operand2) {
异常
int result = operand1 / operand2;
} finally{ // 在 try 结束前要执行的代码块 cleanup();
}
12
多重 catch 块3-1
一段代码可能会生成多个异常 当引发异常时,会按顺序来查看每个 catch 语句,并
执行第一个类型与异常类型匹配的语句 执行其中的一条 catch 语句之后,其他的 catch 语句
System.out.println(result);
}
}
5
处理异常 2-1
处理运行时错误的伪代码
……… IF B IS ZERO GO TO ERROR C=A/B PRINT C GO TO EXIT
ERROR: 处理异常的块 “以零作除数,代码导致错误”
DISPLAY
EXIT: END
6
处理异常 2-2
在编程中,错误总是难免会发生的 关键在于发生错误之后,能否捕获错误,如何捕获
错误,程序能否从错误中恢复 异常处理的目的,不是要避免异常,而是在异常发
生时,设法使损失降低到最小
3
异常处理的基本概念
错误与异常
错误:编译程序时发现的问题,编译时会出现错误 或警告。当运行程序时,错误已经不存在
异常:编译时没有发现,只有在运行程序的时候, 在某种特定的情况下,程序执行出现错误,这时会 发生异常
算术错误情形,如以零作除数
IllegalArgumentException
方法接收到非法参数
ArrayIndexOutOfBoundException 数组大小小于或大于实际的数组大小
NullPointerException
尝试访问 null 对象成员
ClassNotFoundException NumberFormatException IOException
异常
程序控制
执行 catch 后程序 继续正常运行
9
try 和 catch 块 2-2
tpryub和lic clcasastAcrhith块me的ticE用xce法ption {
/** 构造方法. */ public ArithmeticException() { clas/}p*su* Eb构lxicc造es方ptati法toicn.Rv*oa/ iidsemda{in(String[] args) { puEbxlcicepEtxiocneRptaioisneRdaoisbejd=()ne{w ExceptionRaised(); } try { /******这@ @ @}c个ppr/iSSane*aatyyttc方定rrusshraartte法mmee义n(smmEui运变oonxl..ttppoec行量=eeurerrr返tp.时o.aaprptbiennr回or将ijdsdin.nncu21除t会tlaellntn除除l法)(c产以(“ur{发法法e的l生存as生中中t结u一e储l异(t的的果)9个结;,常分分异0果:)子母;常. "*/. + e.toString()); */ e.printStackTrace(); pu} blic int calculate(int operand1, int operand2) { } int result = operand1 / operand2; } return result; } }
异常
目标
理解异常的概念 运用 try 块、catch 块和 finally 块处理异常 运用多重 catch 块处理异常 运用嵌套 try/catch 块处理异常 运用关键字 throw 和 throws 处理异常 运用JAVA编写和使用自定义异常
2
异常处理的基本Biblioteka 念异常处理机制的作用