第六次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原则 了解设计模式 实验内容 ...
随机推荐
- Confluence 6 管理文件
文件是被附加到 Confluence 的页面上的.请参考 Upload Files 页面中的内容来了解如何附加文件到页面中. 一旦文件被附加到页面上了,你可以下载,删除和编辑这些文件.例如,你可以根据 ...
- 卸载brew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninst ...
- 关于Additive Ensembles of Regression Trees模型的快速打分预测
一.论文<QuickScorer:a Fast Algorithm to Rank Documents with Additive Ensembles of Regression Trees&g ...
- HDU6140--Hybrid Crystals(思维)
Hybrid Crystals Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)T ...
- Speed
传送门:Speed 题目大意 给一棵n个点的无根树,每条树边i给出li和ri表示速度在[li,ri]内才能通过这条边. 现在有m个询问,每个询问给出一个速度x,求以x的速度(不能改变)能在树上通过的路 ...
- DB 分库分表(1):拆分实施策略和示例演示
DB 分库分表(1):拆分实施策略和示例演示 第一部分:实施策略 1.准备阶段 对数据库进行分库分表(Sharding化)前,需要开发人员充分了解系统业务逻辑和数据库schema.一个好的建议是绘制一 ...
- Leetcode题目20.有效的括号(简单)
题目描述: 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合.左括号必须以正确的顺序闭合.注意空字符 ...
- GUI输入数据并保存
from tkinter import * def write_to_file(): fileContent = open("deliveries.txt","a&quo ...
- phpmyadmin 导入sql报错(sql为phpstudy内置数据库导出来)
解决方法 1.打开sql,把头部注释去掉
- 黑马vue---8-10、v-cloak、v-text、v-html、v-bind、v-on的基本使用
黑马vue---8-10.v-cloak.v-text.v-html.v-bind.v-on的基本使用 一.总结 一句话总结: v-bind等这些东西都是用的vue.data里面的变量 1.使用 v- ...