第六次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原则 了解设计模式 实验内容 ...
随机推荐
- delphi请求http接口中文乱码问题
请求http接口的时候参数值是中文乱码: http接口一般都是由java,php以及C#开发而成的,乱码的原因也是由于编码的问题,一般传递数据的都是utf8,然后传递的时候都会urlEcode 那么d ...
- vue中全局组件与局部组件的注册,以及动态绑定props值
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 在Spring Boot快捷地读取文件内容的若干种方式
引言: 在Spring Boot构建的项目中,在某些情况下,需要自行去读取项目中的某些文件内容,那该如何以一种轻快简单的方式读取文件内容呢? 基于ApplicationContext读取 在Spri ...
- c++ 派生类的构造函数 与 基类构造函数的关系
<面向对象程序设计基础(第二版>李师贤等,第254页:C++语言的基本规则是:创建一个派生类的对象时,如果基类带有构造函数,则先调用基类的构造函数,然后才调用派生类的构造函数. <T ...
- LeetCode 42. 接雨水(Trapping Rain Water)
题目描述 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水. 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况 ...
- XPATH了解
特殊标签 找SVG这种特殊标签可以使用[name()='svg'],如//[name()='svg']/[name()='line'][2] 文本 找标签内的文本时可以使用: //*[text()=' ...
- python内存泄露memory leak排查记录
问题描述 A服务,是一个检测MGR集群主节点是否发生变化的服务,使用python语言实现的. 针对每个集群,主线程会创建一个子线程,并由子线程去检测.子线程会频繁的创建和销毁. 上线以后,由于经常会有 ...
- 代码实现:判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称
package com.loaderman.test; import java.io.File; import java.io.FilenameFilter; public class Test { ...
- re 模块, 正则表达式 \w+\d+ 的重复问题引发的题目解析
题目 计算以下代码的结果 s = "?!.18)dajslj$12.15613sdadw.123sdasda35615.168sndsda$15.6sdasd.sdfsdgw123.156s ...
- HideTcpip.c
隐藏tcp端口,来自看雪 /////////////////////////////////////////////////////////////////////////////////////// ...