班级 计科二班 学号 20188425 姓名 IM

完成时间2019/10/18

评分等级

实验六 Java异常

实验目的

理解异常的基本概念;

掌握异常处理方法及熟悉常见异常的捕获方法。

实验要求

练习捕获异常、声明异常、抛出异常的方法、熟悉try和catch子句的使用。

掌握自定义异常类的方法。

实验内容

1)、编写一个类,在其main()方法中创建一个一维数组,在try字句中访问数组元素,使其产生ArrayIndexOutOfBoundsException异常。在catch子句里捕获此异常对象,并且打印“数组越界”信息,加一个finally子句,打印一条信息以证明这里确实得到了执行。

2)、自定义异常类的使用

车站检查危险品的设备,如果发现危险品会发出警告。编程模拟设备发现危险品。

技术方案:

编写一个Exgeption的子类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 class demo4 {

	public static void main(String[] args) {
System.out.println("***程序开始***");
int i=0;
int j=0;
try {
String str1=args[0];
String str2=args[1];
int temp =i/j;
}catch(ArrayIndexOutOfBoundsException e) {
System.out.println("***数组越界***"+e);
}finally {
System.out.println("***计算结束***");
} } }

运行结果截图:

实验代码(2)

package 实验室;

public class Googs {
private boolean Danger;
private String name;
private Object getName;
public void Goods(boolean Danger,String name) {
this.Danger=Danger;
this.name=name;
}
public boolean dangerous() { return Danger;
}
public boolean isDanger() {
return Danger;
}
public void setDanger(boolean danger) {
Danger = danger;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Object getGetName() {
return getName;
}
public void setGetName(Object getName) {
this.getName = getName;
} }
package 实验室; import java.util.ArrayList; public class Machine {
public Machine(ArrayList arrayList) { } public void checkBag(Googs goods) throws DangerousException{
if(goods.dangerous())
throw new DangerousException();
else
System.out.println(goods.getName()+"不是危险物品");
} public void addDangerList(String string) { }
}
package 实验室; public class DangerousException extends Exception {
public void toShow() {
System.out.println("危险物品");
}
}
package 实验室; import java.util.ArrayList; public class Test { public static void main(String args[]) {
Machine machine = new Machine(new ArrayList());
String a[]={"汽油","管制刀具","枪","鼠标"};
machine.addDangerList("汽油");
machine.addDangerList("管制刀具");
machine.addDangerList("枪");
machine.addDangerList("鼠标");
Googs goods=new Googs();
for(int i=0;i<a.length;i++) {
goods.setName(a[i]);
if(a[i].equals("汽油")||a[i].equals("管制刀具")||a[i].equals("枪")) {
goods.dangerous();
System.out.println(a[i]+"是危险品");
}
else
goods.dangerous();
}
try {
machine.checkBag(goods);
}catch(DangerousException e) {
e.toShow();
} }
}

运行结果截图:

实验总结:

此次实验难度较低,就是还是不会用链表来储存数据,仅仅调用了一个链表,没有用上数据计算中,较为low。

学习总结

学到了什么:

1.本周学习了Exception类 与 RuntimeException类,它们间的继承关系如图:



parseInt()方法定义为:

public static int parselnt(String s) throws NumberFormatException;

2.Exception在程序中必须使用try...catch进行处理。

RuntimeException 可以不适用try...catch进行处理,如果有异常将由JVM进行处理。

3.断言用来检测程序的执行结果。

用异常类方法来模拟危险品检测仪(此周作业2)

实验报告(六)&第八周学习总结的更多相关文章

  1. 实验报告一&第三周学习总结

    一.实验报告 1.打印输出所有的"水仙花数",所谓"水仙花数"是指一个3位数,其中各位数字立方和等于该数本身.例如,153是一个"水仙花数" ...

  2. 第八周学习总结&实验报告(6)

    实验六 异常 一.实验目的: (1)理解异常的基本概念: (2)掌握异常处理方法及熟悉常见异常的捕获方法. 二.实验要求: (1)练习捕获异常.声明异常.抛出异常的方法.熟悉try和catch子句的使 ...

  3. 20145304 Java第八周学习报告

    20145304<Java程序设计>第八周学习总结 教材学习内容总结 NIO NIO使用频道来衔接数据节点,在处理数据时,NIO可以让你设定缓冲区容量,在缓冲区中对感兴趣的数据区块进行标记 ...

  4. 20172328 2018-2019《Java软件结构与数据结构》第八周学习总结

    20172328 2018-2019<Java软件结构与数据结构>第八周学习总结 概述 Generalization 本周学习了二叉树的另一种有序扩展?是什么呢?你猜对了!ヾ(◍°∇°◍) ...

  5. 20175314 《Java程序设计》第八周学习总结

    20175314 <Java程序设计>第八周学习总结 教材学习内容总结 安利一个非常实用的图片处理工具:图片工厂,它具有非常强大的图片批处理能力,比如加水印.降低画质.命名等,不仅如此它还 ...

  6. 20175126《Java程序设计》第八周学习总结

    # 20175126 2016-2017-2 <Java程序设计>第八周学习总结 ## 教材学习内容总结 - 本周学习方式主要为手动敲代码并理解内容学习. - 学习内容为教材第十五章,本章 ...

  7. 201771010134杨其菊《面向对象程序设计java》第八周学习总结

    第八周学习总结 第一部分:理论知识 一.接口.lambda和内部类:  Comparator与comparable接口: 1.comparable接口的方法是compareTo,只有一个参数:comp ...

  8. 20155227 2016-2017-2 《Java程序设计》第八周学习总结

    20155227 2016-2017-2 <Java程序设计>第八周学习总结 教材学习内容总结 NIO与NIO2 NIO即New IO.java从JDK1.4开始提供了NIO,在JAVA ...

  9. 20155321 2016-2017-2 《Java程序设计》第八周学习总结

    20155321 2016-2017-2 <Java程序设计>第八周学习总结 教材学习内容总结 创建Logger对象 static Logger getLogger(String name ...

  10. 20155229 2016-2017-2 《Java程序设计》第八周学习总结

    20155229 2016-2017-2 <Java程序设计>第八周学习总结 教材学习内容总结 第十四章 NIO使用频道(Channel)来衔接数据节点,在处理数据时,NIO可以设定缓冲区 ...

随机推荐

  1. Spring学习笔记(14)——SpEL

    是什么 Spring表达式语言全称为"Spring Expression Language",缩写为"SpEL",类似于Struts2x中使用的OGNL表达式语 ...

  2. centos7 利用mailx发送邮件

    当需要服务器定时发送邮件到自己邮箱时,一个邮件服务就很重要了,以下主要是mailx的实现,主要是利用 1.安装mailx 1 yum  install  mailx -y 2.使用到的配置文件只有一个 ...

  3. Git--04 Github使用

    目录 Github使用 1.注册用户 2.配置ssh-key 3.创建项目 4.克隆项目到本地 5.推送新代码到github Github使用 Github顾名思义是一个Git版本库的托管服务,是目前 ...

  4. C Primer Plus 学习 第四章

    字符串与格式化输入/输出 函数 strlen() 关键字 const 利用#define 和 const创建符号常量 #include <stdio.h> #include <str ...

  5. 关于.net中使用reportview所需注意

    参考文章链接:http://www.cnblogs.com/watercold/p/5258608.html 这段时间在做一个winform的小项目时,发现使用.net中的ReportViewer插件 ...

  6. css3系列--概述

    CSS3分成了不同类别,称为“modules”.而每一个“modules”都有于CSS2中额外增加的功能,以及向后兼容.CSS3早于1999年已经开始制订.[18]直到2011年6月7日,CSS 3 ...

  7. $NOIP2018$ 爆踩全场记

    NOIP2018 Day-1 路还很长. 这里就是起点. 这是最简单的一步,但这是最关键的一步. 联赛就在眼前了,一切好像都已经准备好了,一切好像又都没准备好. 相信自己吧,\(mona\),这绝对不 ...

  8. MySQL使用版本号实现乐观锁

    原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11608581.html 乐观锁适用于读多写少的应用场景  乐观锁Version图示 Project D ...

  9. 支付宝证书签名 PHP SDK

    PHP 接入支付宝证书方式签名以及验签 支付宝在 2019.10.25 日左右更新了新的 PHP SDK (v4.1.0). 之前的 PHP SDK(v3.4.2) 仅支持公钥方式加签.这次更新之后 ...

  10. Junit单元测试之MockMvc

    在测试restful风格的接口时,springmvc为我们提供了MockMVC架构,使用起来也很方便. 下面写个笔记,便于以后使用时参考备用. 一 场景 1 . 提供一个restful风格的接口 im ...