当前课程知识点:“做中学”Java程序设计 >  第5章捕获并处理异常 >  5.3创建自定义异常 >  Video

返回《“做中学”Java程序设计》慕课在线视频课程列表

Video在线视频

Video

下一节:Video

返回《“做中学”Java程序设计》慕课在线视频列表

Video课程教案、知识点、字幕

你不仅可以使用系统自带的那些预定义异常类

还可以根据自己的实际需要

来定义自己的异常类型

在这一讲当中

我们的学生信息系统管理当中

学生对象通常都保存了一个9位数字的学号

如果没有提供一个9位数字的学号

我们将拒绝创建这样的一个学生对象

现在呢有一个任务

当没有提供这样一个9位数字的学号

我们将拒绝创建这个学生对象

并且呢抛出一个非法的学号格式的异常

根据这个需求

我们先来看一下如何定义一个非检查的异常

我们将这个类名取名为StudentIdFormatException

对于这类非法参数的非检查异常

我们可以选择一个合适的父类

illegalArgumentException

这个异常类型常常是用来表示非法参数的

它呢是RuntimeException的一个子类

我们完全可以将它作为我们的父类

好 接下去呢我们来新建一个自定义的类

名字取名为StudentIdFormatException

将它的直接父类指定为illegalArgumentException

在创建这个类的构造方法里面

需要提供一个msg对象

这个对象用来描述这个异常的相关信息

由于我们已经继承过来了 通过super方法让父类去保存这个实例变量就可以

下面我们来创建一个学生类型

并提供学号和姓名两个实例变量

在Student的构造方法当中

我们使用正则表达式

对传进来的这个id参数来判断它是否是一个由九位数字构成的字符串

如果不匹配

将使用throw语法来抛出StudentIdFormatException的对象

并且将当前的错误信息保存在我们的这个对象里面

回到我们的客户代码

我们来尝试创建一个非法学号的学生对象

由于是一个非检查的异常

编译器没有强制我们要求对这个异常对象进行捕获或处理

我们现在就可以运行

这时候呢我们发现当我们给定一个非法的学号的时候

这个异常的对象呢就会通过我们的虚拟器打印出来

当然你也可以尝试地使用try catch 语句块

对这个异常对象呢进行捕获或处理

接下去我们将这个StudentIdFormatException改造成一个检查异常

这只需要将它的父类从illegalArgumentException替换成Exception

现在这个StudentIdFormatException呢就变成了一个检查异常

同时我们将检查学号的相关代码分装成一个独立的checkValid的方法

这次抛出的是一个检查异常

编译器已经强制我们要求对这个检查异常进行相应的处理

处理的方式呢你可以使用try catch 来捕获

也可以在方法的签名部分 添加我们的异常类型

抛出给我们的方法调用者来处理

这里呢我们就在方法的签名部分加上我们的throws

指定它的类型为StudentIdFormatException

回到我们的客户代码 这时候需要对检查异常进行强制处理

我们在main方法当中使用try catch 语块对它进行处理

通过这个示例

我们学习了如何在项目当中添加一个自定义的检查异常 非检查异常

以及对这些检查异常的相应处理

“做中学”Java程序设计课程列表:

第1章初始Java

-1.1Java简介

--01Java简介

-1.2搭建Java开发环境

--Video

-1.3使用记事本编写Java程序

--Video

-1.4使用Eclipse开发Java程序

--Video

-1.5导入/导出Java项目

--Video

-1.6管理组织代码

--Video

-第1章初始Java--测试题

第2章使用Java基本语法(1)

-2.1认识标识符

--Video

-2.2变量和变量类型

--Video

-2.3数据类型和类型转换

--Video

-2.4使用常量

--Video

-2.5使用注释

--Video

-2.6使用运算符进行算术运算

--Video

-第2章使用Java基本语法(1)--测试题

第2章使用Java基本语法(2)

-2.7使用运算符进行逻辑处理

--Video

-2.8使用if进行流程控制

--Video

-2.9使用switch进行流程控制

--使用switch进行流程控制

-2.10使用循环

--Video

-2.11循环的跳出和继续

--Video

-2.12多重循环

--Video

-第2章使用Java基本语法(2)--测试题

第3章使用面向对象基础语法

-3.1认识类和对象

--Video

-3.2为类添加属性

--Video

-3.3为类添加方法

--Video

-3.4为类添加静态方法

--Video

-3.5递归方法

--递归方法

-3.6构造方法

--Video

-3.7重载方法

--Video

-第3章使用面向对象基础语法--测试题

第4章使用面向对象高级语法

-4.1使用继承语法

--Video

-4.2使用数组

--Video

-4.3使用数组类操作数组

--Video

-4.4使用抽象类

--Video

-4.5使用接口

--Video

-第4章使用面向对象高级语法--测试题

第5章捕获并处理异常

-5.1异常处理机制

--Video

-5.2捕获异常

--Video

-5.3创建自定义异常

--Video

-第5章捕获并处理异常--测试题

第6章使用SWT设计界面

-6.1SWT图形界面

--Video

-6.2使用SWT布局管理-FillLayout

--使用SWT布局管理-FillLayout

-6.3使用SWT布局管理-RowLayout

--使用SWT布局管理-RowLayout

-6.4SWT中的事件模型

--Video

-6.5常见事件处理写法

--Video

-第6章使用SWT设计界面--测试题

第7章微波炉模拟程序

-7.1微波炉模拟程序的界面制作

--Video

-7.2微波炉模拟程序的代码重构

--Video

-7.3微波炉模拟程序的事件监听

--Video

-7.4微波炉模拟程序的数字键盘

--Video

-7.6微波炉模拟程序CookTimer

--Video

-7.7微波炉模拟程序添加图像

--Video

-7.8微波炉模拟程序添加声音

--Video

-7.9微波炉模拟程序安装包制作

--Video

Video笔记与讨论

也许你还感兴趣的课程:

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