理解异常的基本概念;

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

实验要求

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

掌握自定义异常类的方法

实验内容

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

自定义异常类的使用

package Domain;

public class ExceptionTest {

	public static void main(String[] args)throws Exception {
int[]arr = new int[10];
try{
int a = arr[10];
System.out.println(a);
}catch(ArrayIndexOutOfBoundsException ex){
throw new Exception("数组越界",ex);
}finally{
System.out.println("验证Finally的运行");
}
} }

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

技术方案:

编写一个Exgeption的子类DangerException,该子类可以创建异常对象,该异常对象调用toShow()方法输出“危险物品”。编写一个Machine类,该类的方法checkBag(Goods goods)当发现参数goods是危险品时(goods的isDanger属性是true)将抛出DangerException异常。

程序在主类的main()方法中的try-catch语句的try部分让Machine类的实例调用checkBag(Goods goods)的方法,如果发现危险品就在try-catch语句的catch部分处理危险品。

package Danger;

public class DangerException extends Exception{
String imformation; DangerException(String imformation){
this.imformation=imformation; }
void toShow(){ System.out.println(imformation);
}
}
package Danger;

public class Machine {
String name;
Goods g; public boolean isDanger(String name) {
String score[] = {"炸弹","毒药","刀具","枪支"};
boolean flag =false;
for(int i=0;i<score.length;i++) {
if(name.equals(score[i])) {
flag = true;
break;
}
}
return flag; } void checkBag(Goods g){
this.g=g;
name=g.getName();
try{
if(isDanger(name)){
System.out.print(name);
throw new DangerException("是危险品!!!"+"\n");
}
else{
System.out.print(name);
throw new DangerException("不是危险品!"+"\n");
}
}catch(DangerException e){
e.toShow();
}
}
}
package Danger;

public class Goods{

    String name;

    public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
}
package Danger;
import java.util.Scanner;
public class Test {
public static void main(String[] args) { while(true) {
Scanner sc=new Scanner(System.in); System.out.println("请输入物品:");
String input=sc.nextLine();
Goods g=new Goods();
g.setName(input);
Machine m=new Machine();
m.checkBag(g); }
} }

课程总结

了解了进程与线程,多线程是指在一个进程在执行过程中,可以产生多个更小的程序单元(即线程),这些线程可以同时存在,同时运行,,而一个进程可能包含了多个同时执行的线程.

继承Thread类

在启动多线程时,必须通过start()方法启动,而不能直接调用run()方法,如果一个类通过继承Thread来实现,那么只能调用一次start()方法,如果调用多次会抛出“IlleglThreadStateException"异常.

实现Runnable接口

在Runnable接口中只提供一个抽象方法run()

第八周课程总结-实验报告六(Java异常)的更多相关文章

  1. 第八周课程总结&实验报告六

    实验六 Java异常 实验目的 理解异常的基本概念: 掌握异常处理方法及熟悉常见异常的捕获方法. 实验要求 练习捕获异常.声明异常.抛出异常的方法.熟悉try和catch子句的使用. 掌握自定义异常类 ...

  2. 第八周课程总结 & 实验报告(六)

    第八周课程总结 一.包装类 介绍 装箱与拆箱 应用 二.异常 基本概念 基本格式 异常类的继承结构 throws关键字 throw关键字 Exception类和RuntimeException类 自定 ...

  3. 第八周课程总结&实验报告(六)

    第八周课程总结 启动多线程售票(上课老师说要加入作业的部分) public class TestDemo { public static void main(StringD args) throws ...

  4. 第八周课程总结&实验报告

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

  5. 第八周学习总结&实验报告六

    实验总结 :类的继承 实验目的 理解异常的基本概念: 掌握异常处理方法及熟悉常见异常的捕获方法. 实验要求 : 练习捕获异常.声明异常.抛出异常的方法.熟悉try和catch子句的使用. 掌握自定义异 ...

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

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

  7. 第8周课程总结&实验报告6

    实验六 Java异常 实验目的 理解异常的基本概念: 掌握异常处理方法及熟悉常见异常的捕获方法. 实验要求 练习捕获异常.声明异常.抛出异常的方法.熟悉try和catch子句的使用. 掌握自定义异常类 ...

  8. 第六周课程总结&实验报告(四)

    实验报告(四) 一.实验目的 1.掌握类的继承 2.变量的继承和覆盖,方法的继承,重载和覆盖的实现 二.实验的内容 1.根据下面的要求实现圆类Circle. 圆类Circle的成员变量:radius表 ...

  9. 第三周课程总结&实验报告

    课程总结 在这周对Java进行了更深层次的学习,Java的学习也变得越来越困难而有趣,加入了一些新的构造新的方法,还学习了一些简化代码的方式. 面向对象的基本概念 对于面向对象的程序设计有三个主要特征 ...

随机推荐

  1. java邮箱正则验证

    import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; public class tes ...

  2. 【51nod1220】约数之和

    题目 d(k)表示k的所有约数的和.d(6) = 1 + 2 + 3 + 6 = 12. 定义S(N) = ∑1<=i<=N ∑1<=j<=N d(i*j). 例如:S(3) ...

  3. k8s-强制删除pod

    kubectl get deployments --all-namespaces [root@master ~]# kubectl get deployments --all-namespacesNA ...

  4. 在linux 下安装git

    ① 安装 Git Linux 做为服务器端系统,Windows 作为客户端系统,分别安装 Git 服务器端: #yum install -y git 安装完后,查看 Git 版本 [root@loca ...

  5. Moco 详解

    一.下载及安装: 运行环境: JAVA环境 linux 下载地址:https://github.com/dreamhead/moco 下载下来的是一个jar包,如:moco-runner-0.12.0 ...

  6. confluence部署

    confluence -- 团队文档的管理平台. 首先要在confluence官网买key. 部署 安装jdk 1.8 环境 查看机器是否自带 java -version,没有再安装. yum ins ...

  7. JavaWeb_(SSH论坛)_四、页面显示

    基于SSH框架的小型论坛项目 一.项目入门 传送门 二.框架整合 传送门 三.用户模块 传送门 四.页面显示 传送门 五.帖子模块 传送门 六.点赞模块 传送门 七.辅助模块 传送门 帖子表与回复表 ...

  8. docker删除容器再删除镜像

    1. 查询镜像 docker images 现在想删除第一个,ID为 99f85991949f 的镜像. docker rmi  ID 从上面看出,需要先停到ID为 67*** 的容器. 2. 查询容 ...

  9. python学习之路(14)

    通过列表生成式,我们可以直接创建一个列表.但是,受到内存限制,列表容量肯定是有限的.而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素 ...

  10. Java容器——Set和顺序存储

    当Set使用自己创建的类型时,存储的顺序如何维护,在不同的Set实现中会有不同,而且它们对于在特定的Set中放置的元素类型也有不同的要求: Set(interface) 存入Set的每个元素都必须是唯 ...