第六次java实验报告
Java实验报告
班级 计科二班 学号20188437 姓名 何磊
完成时间 2019/10/17
评分等级
实验四 类的继承
- 实验目的
- 理解异常的基本概念;
- 掌握异常处理方法及熟悉常见异常的捕获方法。
- 实验要求
- 练习捕获异常、声明异常、抛出异常的方法、熟悉try和catch子句的使用。
- 掌握自定义异常类的方法。
- 实验内容
- 编写一个类,在其main()方法中创建一个一维数组,在try字句中访问数组元素,使其产生ArrayIndexOutOfBoundsException异常。在catch子句里捕获此异常对象,并且打印"数组越界"信息,加一个finally子句,打印一条信息以证明这里确实得到了执行。
- 自定义异常类的使用
车站检查危险品的设备,如果发现危险品会发出警告。编程模拟设备发现危险品。
技术方案:
编写一个Exception的子类DangerException,该子类可以创建异常对象,该异常对象调用toShow()方法输出"危险物品"。编写一个Machine类,该类的方法checkBag(Goods goods)当发现参数goods是危险品时(goods的isDanger属性是true)将抛出DangerException异常。
程序在主类的main()方法中的try-catch语句的try部分让Machine类的实例调用checkBag(Goods goods)的方法,如果发现危险品就在try-catch语句的catch部分处理危险品。 - 实验过程(请自己调整格式)
(一)
(1)实验代码
|
package捕获异常; public public System.out.println("******程序开始运行******"); int try{ array[1]=1; }catch(Exception e){ System.out.println("数组出界:"+e); }finally{ System.out.println("不管是否出现异常,都执行此代码"); } System.out.println("******程序结束运行******"); } } |

(2)运行结果

(二)
(1)实验代码
|
package自定义异常类的使用; public class DangerException extends Exception{ //自定义异常类DangerException,继承Exception类 public void toShow(Goods goods){ //定义toshow方法,接收Goods类参数 System.out.println(goods.getName()+"是危险物品!"); //输出异常信息 } } package 自定义异常类的使用; import java.util.ArrayList; |
|
package自定义异常类的使用; class Goods{ private String name; //定义name变量储存物品名称 private public Goods(String name) { //定义Goods构造方法用以初始化物品名称 super(); this.setName(name); } public String getName() { return } public this.name = name; } public return } public this.isDanger = isDanger; } //Setter和Getter方法 } |
|
package自定义异常类的使用; public public Machine machine=new Machine(); //创建Machine对象 machine.menu(); //调用Machine中的menu方法 } } |





(2)运行结果
请输入数字以选择
1:检查物品 2:增加危险物品 3:删除危险物品 4:查询危险品列表
4
危险物品列表:汽油、炸弹、管制刀具、枪械、喷雾、
请输入数字以选择
1:检查物品 2:增加危险物品 3:删除危险物品 4:查询危险品列表
2
请输入待增加的危险物品名称:
坦克
"坦克"已加入危险品列表
请输入数字以选择
1:检查物品 2:增加危险物品 3:删除危险物品 4:查询危险品列表
4
危险物品列表:汽油、炸弹、管制刀具、枪械、喷雾、坦克、
请输入数字以选择
1:检查物品 2:增加危险物品 3:删除危险物品 4:查询危险品列表
3
请输入待删除的危险物品名称:
喷雾
"喷雾"已从危险品列表中删除
请输入数字以选择
1:检查物品 2:增加危险物品 3:删除危险物品 4:查询危险品列表
4
危险物品列表:汽油、炸弹、管制刀具、枪械、坦克、
请输入数字以选择
1:检查物品 2:增加危险物品 3:删除危险物品 4:查询危险品列表
1
请输入待检查的物品名称:
坦克
坦克是危险物品!
请输入数字以选择
1:检查物品 2:增加危险物品 3:删除危险物品 4:查询危险品列表
1
请输入待检查的物品名称:
喷雾
检测通过
请输入数字以选择
1:检查物品 2:增加危险物品 3:删除危险物品 4:查询危险品列表

- 结论
本次实验帮助我理解了异常的基本概念,掌握了异常处理方法及熟悉常见异常的捕获方法。相较于前几次实验难度有所提升。
本周学习了异常的基本概念、throws与throw关键字、自定义异常类。
异常类的结构图

常见的error类
|
异常类名 |
用途 |
|
LinkageError |
动态链接失败 |
|
VirtualMachineError |
虚拟机错误 |
|
AWTError |
AWT错误 |
3、常见运行时异常类
|
异常类名 |
用途 |
|
ArithmeticException |
数学运算异常,比如除数为零的异常 |
|
IndexOutOfBoundsException |
下标越界异常,比如集合、数组等 |
|
ArrayIndexOutOfBoundsException |
访问数组元素的下标越界异常 |
|
StringIndexOutOfBoundsException |
字符串下标越界异常 |
|
ClassCaseException |
类强制转换异常 |
|
NullpointerException |
当程序试图访问一个空数组中的元素,或访问一个空对象中的方法或变量时产生的异常。 |
4、常用的非运行时异常
|
异常类名 |
用途 |
|
ClassNotFoundException |
指定类或接口不存在的异常 |
|
IllegalAccessException |
非法访问异常 |
|
Ioexception |
输入输出异常 |
|
FileNotFoundException |
找不到指定文件的异常 |
|
ProtocolException |
网络协议异常 |
|
SocketException |
Socket操作异常 |
|
MalformedURLException |
统一资源定位符(URL)的格式不正确的异常 |
异常类常用方法
|
常用非法 |
用途 |
|
Void String getMessage() |
返回异常对象的一个简短描述 |
|
Void String toString() |
获取异常对象的详细信息 |
|
Void printStackTrace() |
在控制台上打印异常对象和它的追踪信息 |
第六次java实验报告的更多相关文章
- 第六周&java实验报告四
实验报告: 一.实验目的 (1)掌握类的继承 (2)变量的继承和覆盖,方法的继承,重载和覆盖的实现: 二.实验的内容 (1)根据下面的要求实现圆类Circle. 1.圆类Circle的成员变量:rad ...
- 第六周&Java实验报告四(类的继承)
一.实验目的 (1)掌握类的继承 (2)变量的继承和覆盖,方法的继承,重载和覆盖的实现: 二.实验的内容 (1)根据下面的要求实现圆类Circle. 1.圆类Circle的成员变量:radius表示圆 ...
- JAVA实验报告四及第六周总结
JAVA第六周作业 实验报告四 第一题 (1)根据下面的要求实现圆类Circle. 1.圆类Circle的成员变量:radius表示圆的半径. 2.圆类Circle的方法成员: Circle():构造 ...
- 第六周学习总结&java实验报告四
第六周学习总结&java实验报告四 学习总结: 上一周因为接近国庆假期,所以老师没有讲太多的新知识点,只要是带我们一起做了一个动物模拟变声器的实验,进一步了解和学习到继承的 有关知识点和应用: ...
- Java实验报告五:Java网络编程及安全
Java实验报告五:Java网络编程及安全 ...
- 20135231 JAVA实验报告三:敏捷开发与XP实践
---恢复内容开始--- JAVA实验报告三:敏捷开发与XP实践 20135231 何佳 实验内容 1. XP基础 2. XP核心实践 3. 相关工具 实验要求 1.没有Linux基础的同学建议先学习 ...
- JAVA实验报告及第七周总结
JAVA第六周作业 实验报告五 第一题 1.设计一个类层次,定义一个抽象类--形状,其中包括有求形状的面积的抽象方法. 继承该抽象类定义三角型.矩形.圆. 分别创建一个三角形.矩形.圆存对象,将各类图 ...
- Java实验报告二:Java面向对象程序设计
Java实验报告二:Java面向对象程序设计 ...
- 20145203盖泽双:Java实验报告二
Java实验报告二:Java面向对象程序设计 实验要求: 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 实验内容 ...
随机推荐
- 第十一天 unittest参数化模块
unittest的工作原理:一下例子简单的描述了整个过程 def calc(a,b): return a//b import unittest,HTMLTestRunner import Beauti ...
- python中的位运算
目录 1.判断奇偶数 2.交换两个数 3.找出没有重复的数 4.3的n次方 5. 找出不大于N的最大的2的幂指数 1.判断奇偶数 如果把n以二进制形式展示的话,我们只需要判断最后一个二进制位是1还是0 ...
- ftp协议在linux上的配置
第一步:安装 yum install -y vsftpd 第二步:启动ftp服务:vsftpd [root@localhost ~]# systemctl start vsftpd 第三步:查看启动状 ...
- docker基础知识普及(一)
背景 这篇内容是之前给部门同事培训时写的文档,旨在传达一些docker相关概念,有个基本印象,当然,以下内容都来自网络,我只是个搬运工.具体操作在下篇文章中 一.什么是docker? 1. Docke ...
- 前端单点登录(SSO)实现方法(二级域名与主域名)
1.单点登录介绍 单点登录 SSO 全称 Singn Sign On .SSO 是指在多个应用系统中,用户只需要登录一次用户系统,就可以访问其他互相信任的应用系统.例如:在网易官网登录账户,那么再进入 ...
- oracle中关于clob类型字段的查询效率问题
今天,公司项目某个模块的导出报如下错误: HTTP Status 500 – Internal Server Error Type Exception Report Message Handler d ...
- [windows菜鸟]Windows API函数大全(完整)
Windows API函数大全,从事软件开发的朋友可以参考下 1. API之网络函数 WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一 ...
- DBCP连接池参数解释
1.<!-- 数据源1 --> 2. <bean id="dataSource" 3. class="org.apache.commons.dbcp.B ...
- [VBA]定向提取符合条件的内容
要求:若A列满足值为c,则将b列对应的内容背景色调为红色,并提取出来: 代码如下: Sub naqu()Dim i As IntegerFor i = 2 To Range("a65536& ...
- 七十:flask钩子函数之关于before_request的钩子函数
在flask中钩子函数是使用特定的装饰器装饰的函数,用于在正常执行的代码中,插入一段自己想要执行的代码(hook) before_first_request:flask项目第一次部署后指向的钩子函数, ...