当前课程知识点:Java程序设计 >  第五章 输入输出 >  5.1.1-5.1.2-异常处理的概念 >  5.1.1-5.1.2-异常处理的概念

返回《Java程序设计》慕课在线视频课程列表

5.1.1-5.1.2-异常处理的概念在线视频

5.1.1-5.1.2-异常处理的概念

下一节:5.1.3-5.1.5-异常的处理

返回《Java程序设计》慕课在线视频列表

5.1.1-5.1.2-异常处理的概念课程教案、知识点、字幕

大家好

欢迎回来继续学习

Java语言程序设计

这一节我们来学习

异常处理的概念

什么是异常处理呢

实际上异常处理

就是一种程序的容错机制

当程序在运行过程中

遇到用户或环境的

一些错误的时候

程序要有能力处理这些错误

并且从错误中恢复出来继续执行

如果不能够完全恢复

至少也给用户一个明确的信息

到底发生了什么使程序要停止

并且在程序结束之前

做好一些善后的工作

为此Java里面

有一种异常处理机制

就是专门干这个用的

异常也称为例外

异常对象就是特殊的运行错误对象

在Java中声明了很多异常类

每个异常类

都代表了一种运行错误

类中包含了这个

运行错误的相关信息

以及处理错误的方法

每当Java程序运行过程中

发生一个可识别的

运行错误的时候

系统都会产生一个

相应的异常类对象

也就是我们说的产生一个异常

什么是可识别的运行错误呢

也就是说在Java的类库中

有一个与之相对应的异常类

那么我们就说这个错误

是一个可识别的运行错误

在Java中当出现异常的时候

处理异常的办法有两种

一种是我这个Java程序

就不处理这个异常

但是你不处理不能不理它

你得声明一下

我不处理这种异常

但是我将这个异常抛出

那么整个这个自己的程序

都不处理异常

它会抛出到哪儿去了呢

它就会直接抛出给运行环境了

就是Java虚拟机了

Java虚拟机就会捕获这个异常

给出一些信息然后终止程序

当然更多的时候

我们会用另外一种办法

就是在自己的程序中

捕获异常并且处理异常

Java的异常处理机制有哪些优点

主要是能够将错误处理代码

从常规代码中分离出来

Java将错误按类型和差别分组

这样的话对那些

无法预测的运行式错误

就能进行捕获和处理

用这样的机制就克服了传统方法

它的错误信息有限的这个问题

后面我们会看到要给大家介绍的

就是说我们可以自定义异常类

这样的话就何以扩展错误信息

你需要多少种错误信息

你自己都可以定义

那么发现了异常以后

就把这个错误传播给调用站

可以让上级的调用者模块

来处理这个信息

在Java中根据

错误的严重程度不同

可以分为两类

一类叫做错误这是致命性的

一般来说是程序无法处理

多数情况下无法从错误中恢复

并且继续运行的

那么Error类就是

所有错误类的超类也叫父类

另外一大类称作异常

是非致命性的

我们可以编制程序

去捕获和处理这样的异常

也就是说这些异常

是有希望恢复的

有希望使程序

在恢复了以后继续执行的

Exception类就是所有异常类的

父类也叫超类

那么异常又分成检查型异常

和非检查型异常

非检查型异常

是不希望程序捕获的异常

对于这些异常

我们在方法中不需要声明

编译器也不进行检查

这些检查型异常都继承自RuntimeException

那么为什么不要求捕获和声明呢

首先引发RuntimeException的操作

在Java的应用程序中

可能会频繁出现

比如说如果每次使用对象的时候

都要编写异常处理代码

来检查这个对象是不是空引用

那么整个程序很快

就变成一个庞大的try-catch块了

就太麻烦了

不要求捕获和声明的异常

它表示的问题

可以不一定要作为异常来处理

比如说关于除0的问题

我们可以在程序的逻辑中

直接判断一个除数是否为0

为0的时候如何

而不必非得使用ArithmeticException

而检查型异常

是程序必须要关注的

如果被调用的方法

抛出了一个类型为E的检查型异常

那么它的调用者模块就必须捕获

并且处理这个异常

或者呢也声明继续抛出

抛出这个E类型的异常

或者它的一个超类的异常

对这一点编译器是要进行检查的

这里列出了Java预定义的

一些常见的异常

包括非检查型异常

比如说除0的异常

比如说访问的对象

还没有实例化等等

另外就是检查型的异常

对于检查型的异常

是我们程序必须要处理的

下面一个例题就故意制造了

一个数组越界的异常

我们来看看执行

这个程序会发生什么

现在我们来看一下这个例子

在这里我们定义了

一个String类型的数组greetings然后初始化的值

有三个字符串

那就说明greetings数组

有三个元素

但是接下来在这个while循环中

我们就开始故意制造错误了

我们让循环执行四次

这样在最后一次循环的

循环体里面

访问greetings数组的时候

下标就越界了

那这个下标越界错误

并不是检查型异常

所以我们在这个主方法中

既没有声明抛出这种异常

也没有捕获处理这种异常

那编译的时候也是

并不做强制性的检查

并不要求你要处理

或者是抛出这个异常

但是运行的时候怎么样呢

我们来看运行结果

前三个字符串都很好的输出了

然后实际上这个时候

数组的遍历就应该已经结束了

那么由于我们故意制造错误

让循环进行第四次

所以接下来在第四次循环中

继续尝试去访问

数组的下一个元素

就造成了下标越界

那这个时候Java虚拟机

就会给我们这样的异常错误信息

然后终止程序的执行

这一节我们介绍了

异常处理的基本概念

和一个简单的例子

这一节的内容就是这些

Java程序设计课程列表:

第一章 Java语言基础知识

-1.0-导学

--1.0-导学

--JDK的安装与配置01

--JDK的安装与配置02

--JDK的安装与配置03

--编辑并执行第一个java程序01

--编辑并执行第一个java程序02

--编辑并执行第一个java程序03

--eclipse的安装和配置01

--eclipse的安装和配置02

--eclipse的安装和配置03

--使用eclipse进行Java的开发01

--使用eclipse进行Java的开发02

--使用eclipse进行Java的开发03

-1.1-Java与面向对象程序设计简介

--1.1.1 Java与面向对象程序设计简介

--第一章 Java语言基础知识--1.1-Java与面向对象程序设计简介

-1.2-基本数据类型与表达式

--1.2.1-基本数据类型与表达式

-第一章 Java语言基础知识--1.2-基本数据类型与表达式

-1.3-数组

--1.3.1-数组

-第一章 Java语言基础知识--1.3-数组

-1.4-算法的流程控制

--1.4.1-算法的流程控制

--第一章 Java语言基础知识--1.4-算法的流程控制

-1.5-第一章小结

--1.5.1-第一章小结

-第一章编程练习题

-课件

--外部链接

第一章续-习题讲解视频

-Java环境配置、Eclipse使用、Helloworld程序详解

--JAVA的安装和配置

--编写并执行第一个Java程序及Java的跨平台性

--eclipse的安装和配置

--使用eclipse建立Java项目、编写和运行Java程序

--Java注释和Eclipse中的注释操作

--详解HelloWorld程序

-Java数据类型

--Java数据类型介绍

--Java整数类型

--Java浮点类型

--Java字符类型和布尔类型

--数据类型实战

--数据类型转换

--Java强制类型转换精度损失示例与表达式中的数据类型转换

-Java数组

--Java数组介绍、声明与使用

--一维数组的初始化与length属性

--数组索引的原理与使用

--二维数组的介绍与使用

-Java变量

--Java的变量

-命令行参数

--命令行参数的介绍

第二章 类与对象

-2.0-导学

--2.0-导学

-2.1-面向对象方法的特性

--2.1-面向对象方法的特性

--第二章 类与对象--2.1-面向对象方法的特性

-2.2-1-类声明与对象创建

--2.2-1-类声明与对象创建

--第二章 类与对象--2.2-1-类声明与对象创建

-2.2-2-数据成员

--2.2-2-数据成员

--第二章 类与对象--2.2-2-数据成员

-2.2-3-方法成员

--2.2-3-方法成员

--第二章 类与对象--2.2-3-方法成员

-2.2-4-包

--2.2-4-包

--第二章 类与对象--2.2-4-包

-2.2-5-类的访问权限控制

--2.2-5-类的访问权限控制

--第二章 类与对象--2.2-5-类的访问权限控制

-2.3-1-对象初始化

--2.3-1-对象初始化

--第二章 类与对象--2.3-1-对象初始化

-2.3-2-内存回收

--2.3-2-内存回收

--第二章 类与对象--2.3-2-内存回收

-2.4-枚举类

--2.4-枚举类

--第二章 类与对象--2.4-枚举类

-2.5-应用举例

--2.5-应用举例

-2.6-第2章小结

--2.6-第2章小结

-第二章编程练习题

-课件

--第二章课件

第三章 类的重用

-3.0-导学

--3.0-导学

-3.1.1-3.1.2-类继承的概念和语法

--3.1.1-3.1.2-类继承的概念和语法

--第三章 类的重用--3.1.1-3.1.2-类继承的概念和语法

-3.1.3-隐藏和覆盖

--3.1.3-隐藏和覆盖

--第三章 类的重用--3.1.3-隐藏和覆盖

-3.2-Object 类

--3.2-Object 类

--第三章 类的重用--3.2-Object 类

-3.3-终结类与终结方法

--3.3-终结类与终结方法

--第三章 类的重用--3.3-终结类与终结方法

-3.4-抽象类

--3.4-抽象类

--第三章 类的重用--3.4-抽象类

-3.5-泛型

--3.5-泛型

--第三章 类的重用--3.5-泛型

-3.6-类的组合

--3.6-类的组合

-3.7-小结

--3.7-小结

-第三章编程练习题

-课件

--课件

第四章 接口与多态

-4.0-导学

--导学

-4.1-接口

--接口

--第四章 接口与多态--4.1-接口

-4.2.1-4.2.2-类型转换

--类型转换

--第四章 接口与多态--4.2.1-4.2.2-类型转换

-4.2.3-方法的查找

--方法的查找

--第四章 接口与多态--4.2.3-方法的查找

-4.3-多态的概念

--多态的概念

--第四章 接口与多态--4.3-多态的概念

-4.4-多态的应用举例

--多态的应用举例

--第四章 接口与多态--4.4-多态的应用举例

-4.5-构造方法与多态性

--构造方法和多态性

--第四章 接口与多态--4.5-构造方法与多态性

-4.6-本章小结

--本章小结

-第四章编程作业

-课件

--课件

第五章 输入输出

-5.0-导学

--5.0-导学

-5.1.1-5.1.2-异常处理的概念

--5.1.1-5.1.2-异常处理的概念

--第五章 输入输出--5.1.1-5.1.2-异常处理的概念

-5.1.3-5.1.5-异常的处理

--5.1.3-5.1.5-异常的处理

--第五章 输入输出--5.1.3-5.1.5-异常的处理

-5.2-输入输出流的概念

--输入输出流的概念

--第五章 输入输出--5.2-输入输出流的概念

-5.3.1-写文本文件

--写文本文件

--第五章 输入输出--5.3.1-写文本文件

-5.3.2-读文本文件

--读文本文件

--第五章 输入输出--5.3.2-读文本文件

-5.3.3-写二进制文件

--写二进制文件

--第五章 输入输出--5.3.3-写二进制文件

-5.3.4-读二进制文件

--读二进制文件

-5.3.5-File类

--File类

-5.3.6-处理压缩文件

--处理压缩文件

-5.3.7-对象序列化

--对象序列化

-5.3.8-随机文件读写

--随机文件读写

-5.4-本章小结

--本章小结

-课件

--课件

第六章 对象群体的组织

-6.0-导学

--导学

-6.1-Java集合框架介绍

--Java集合框架介绍

--第六章 对象群体的组织--6.1-Java集合框架介绍

-6.2-主要接口及常用的实现类

--6.2-主要接口及常用的实现类

--第六章 对象群体的组织--6.2-主要接口及常用的实现类

-6.3-常用算法

--常用算法

-6.4-数组实用方法

--6.4-数组实用方法

-6.5-基于动态数组的类型(Vector, ArrayList)

--基于动态数组的类型(Vector, ArrayList)

-6.6-遍历Collection

--遍历Collection

-6.7-Map接口及其实现

--Map接口及其实现

-6.8-第6章小结

--第6章小结

-课件

--课件

第七章 图形用户界面

-7.0-导学

--导学

-7.1-绘图

--绘图

-7.2-Swing基础

--Swing基础

-7.3-Swing的层次

--Swing的层次

-7.4-布局管理

--布局管理

-7.5-内部类

--内部类

-7.6-事件处理的基本概念

--事件处理的基本概念

-7.7-事件派发机制

--事件派发机制

-7.8-顶层容器

--7.8-顶层容器

-7.9-中间层容器(一)

--7.9-中间层容器(一)

-7.10-中间层容器(二)

--7.10-中间层容器(二)

-7.11-原子组件(一)

--7.11-原子组件(一)

-7.12-原子组件(二)

--7.12-原子组件(二)

-7.13-原子组件(三)

--7.13-原子组件(三)

-7.14-其它Swing特性

--7.14-其它Swing特性

-7.15-第7章小结

--7.15-第7章小结

-课件

--课件

5.1.1-5.1.2-异常处理的概念笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。