第六次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原则 了解设计模式 实验内容 ...
随机推荐
- BZOJ 5418: [Noi2018]屠龙勇士 EXCRT+multiset
题解:求解形如 $A[i]ans\equiv b[i](mod$ $p[i])$ 的 $x$ 的最小正整数解. 考虑只有一个等式,那么可以直接化成 $exgcd$ 的形式:$A[i]ans+p[i]y ...
- H5 设计尺寸
750*1218 微信下 兼容 7plus 内容高度 居中 1000px 内 750*1448 微信下 兼容 iphoneX 微信导航栏高度 64px 64px = 导航栏44+状态栏20 但是现在 ...
- 错误/异常:org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save() 的解决方法
1.错误/异常视图 错误/异常描述:id的生成错误,在调用save()方法之前,必须先生成id. 2.解决方法 在对应的实体类的主键(id)的get方法上加上:@GeneratedValue( ...
- 『HGOI 20190917』Lefkaritika 题解 (DP)
题目概述 一个$n \times m$的整点集.其中$q$个点被m被设置为不能访问. 问这个点集中含有多少个不同的正方形,满足不包含任何一个不能访问的点. 对于$50\%$的数据满足$1 \leq n ...
- epplus动态合并列数据
private static void SetColMerge(DataTable tb, ExcelWorksheet worksheet, string dtColumnName) { KeyVa ...
- js获取高度和宽度
CreateTime--2017年7月24日10:15:47Author:Marydon js获取高度和宽度 参考连接:http://www.cnblogs.com/EasonJim/p/6229 ...
- Linux常用指令grep(搜索过滤)
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达 ...
- JS字符串转换为JSON的方法
1.jQuery插件支持的转换方式: 示例: $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象 2.浏览 ...
- LC 244. Shortest Word Distance II 【lock, Medium】
Design a class which receives a list of words in the constructor, and implements a method that takes ...
- 深入理解AlexNet网络
原文地址:https://blog.csdn.net/luoluonuoyasuolong/article/details/81750190 AlexNet论文:<ImageNet Classi ...