第六次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原则 了解设计模式 实验内容 ...
随机推荐
- 第一次 CSP-S 的游记
菜得很啊菜得很! --PinkRabbit 第一次 CSP-S ,真的是 第一次. 作为一名初三学生,虽然是 第一次 参加 和NOIP没有任何关系 的 CSP-S ,总是要有点目标呀. 第一试 因为是 ...
- http 异步 接收 回传 数据文字和文件流
public void HttpListenerStar() { try { HttpListener httpListener = new HttpListener(); httpListener. ...
- web大文件上传断点续传源码
总结一下大文件分片上传和断点续传的问题.因为文件过大(比如1G以上),必须要考虑上传过程网络中断的情况.http的网络请求中本身就已经具备了分片上传功能,当传输的文件比较大时,http协议自动会将文件 ...
- hdu 5532 Almost Sorted Array nlogn 的最长非严格单调子序列
Almost Sorted Array Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Ot ...
- mysql时区配置
1.修改linux系统时区:ln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime 修改为美洲美国洛杉矶时间 2.查看mysql时区 ...
- vfprintf()函数
函数声明:int vfprintf(FILE *stream, const char *format, va_list arg) 函数参数: stream—这是指向了FILE对象的指针,该FILE对象 ...
- 23.Python位运算符详解
位运算符通常在图形.图像处理和创建设备驱动等底层开发中使用.使用位运算符可以直接操作数值的原始 bit 位,尤其是在使用自定义的协议进行通信时,使用位运算符对原始数据进行编码和解码也非常有效. 位运算 ...
- JavaWeb_(Hibernate框架)使用Hibernate开发用户注册功能
使用Hibernate开发用户注册功能: 用户在register.jsp表单成功后,页面跳转到login.html,数据库中会存放用户注册的信息 <%@ page language=" ...
- zookeeper系列(六)zookeeper的系统模型(数据树)
作者:leesf 掌控之中,才会成功:掌控之外,注定失败. 出处:http://www.cnblogs.com/leesf456/p/6072597.html尊重作者原创,奇文共欣赏,大家共同学 ...
- 关于Sass和Less牵扯的问题
关于Sass和Less牵扯的问题 关于Sass和Less Sass和Less都算是一种编程语言(后面会详谈此处牵扯出来的编程语言),都是CSS预处理器,都具有相同的功能,可以帮助我们快速编译CSS代码 ...