好久没更新了,在准备期末考,忘记更新了,今日就直接出代码,有不懂的可以私信我

前面是重点和难点,如果想搞明白的可以先看前面的

如果了解单纯想看代码请移驾——》

一、实验目的

  1. 熟悉异常的基本概念。
  2. 掌握异常的抛出方法、处理方式(重点)。
  3. 掌握自定义异常(重点、难点)。

二、实验原理及说明

1、异常的处理方式:

(1)使用try…catch…finally结构对异常进行捕获和处理

(2)通过throws和throw抛出异常

(3)以上两种方法的综合(经常使用)

2、try…catch…finally结构

try{

// 可能会抛出特定异常的代码段1; 2; 3;

}catch(异常类型1子   引用1){

// 如果引用1 被抛出,则执行这段代码4;

}catch(异常类型2父   引用2){

//如果另外的异常引用2被抛出,则执行这段代码5;

}

[finally{

//无条件执行的语句6;//一定会执行!!

}]

各个catch参数中的异常类都是Exception的已存在的某个子类,

表明try部分可能发生的异常

3、throw语句的格式如下:

throw    new 异常类名(信息)

异常类名可以是系统异常类名,也可以是自定义的异常类名

“信息”是可选信息。若提供了信息,toString()方法的返回值中将增加该信息的内容

注意:一般情况,若想要自行丢出异常,可以使用throw关键字

4、与throw语句不同,throws选项仅需列出异常的类型名。

函数头 throws 异常类型名 {函数体}//声明

throw new 异常类型(信息);

5、自定义异常类可以通过继承Exception类来继承。格式如下:

class  自定义异常类名 extends Exception

{

类体

}

6、一个方法在声明时可以使用throws关键字声明要产生的若干个异常,并在该方法的方法体中具体给出产生异常的操作,即用相应的异常类创建对象,并使用throw关键字抛出该异常对象,导致该方法结束执行。程序必须在try  catch块语句中调用能发生异常的方法,其中catch的作用就是捕获throw方法抛出的异常对象

三、实验内容

1、按要求完成下题:

编写OwnException类,要求继承Exception类;

编写OwnExceptionSource类,要求包含方法a(),a()抛出OwnException;

编写OwnExceptionHandler类,要求包含main(),在main()中调用OwnExceptionSource类的a(),并处理相关异常。

读取一个文本文件,并显示该文本的内容,同时写到另外一个文本文件中。

提示:使用File类进行文件或目录的操作。

2、编写DivisionByZero类,包含:

① division():要求执行10/0操作,并使用异常处理机制处理产生的异常;

② main():调用division();

③ 修改division():执行10/0不变,但不在方法中处理产生的异常,改将异常抛出;

④ 修改main():调用division()并处理其抛出的异常。

代码1

package test07;public class OwnException extends Exception{public OwnException() {this("ownexception");}public OwnException(String msg) {super(msg);}
}
---------------------------------------
package test07;public class OwnExceptionHandler {public static void main(String[] args) {OwnExceptionSource es=new OwnExceptionSource();try{es.a();System.out.println("try");}catch(Exception e){System.out.println("抱歉,这里是catch,抛出自定义的问题!");e.printStackTrace();}finally {System.out.println("欢迎使用,这里是fianlly!");}System.out.println("after");}
}
----------------------------------------
package test07;public class OwnExceptionSource {public void a() throws OwnException{throw new  OwnException();}}

运行截图

代码2

package test07;import java.util.Scanner;public class DivisionByZero {public static void main(String[] args) {new  DivisionByZero().Division();System.out.println("算数运算结束。");}public static void Division() {System.out.println("请输入a的值");Scanner scanner=new Scanner(System.in);int c=scanner.nextInt();int a=c;System.out.println("请输入b的值");Scanner scanner1=new Scanner(System.in);int d=scanner1.nextInt();int b=d;try{
//          int x, y;
//          x = 10;
//          y = 0;
//          System.out.println(x / y);System.out.println(a+"/"+b+"="+(a/b));}catch(ArithmeticException e){System.out.println("抱歉,这里是catch,算数运算有问题!");}finally {System.out.println("欢迎使用,这里是fianlly!");}}}

第七次 java实验 紫金学院 异常相关推荐

  1. 第八次 java实验 紫金学院 输入/输出流

    一.实验目的 熟悉流--输入/输出流的基本概念. 掌握常用输入/输出流的使用. 掌握文件与文件字节流操作(重点). 二.实验原理及说明 在Java中把不同的数据源和程序间的数据传输(输入和输出或者数据 ...

  2. 第六次 java实验 紫金学院 泛型01

    使用TreeSet和Comparator,编写TreeSetTest2类,要求对TreeSet中的元素1-元素10进行排列,排序逻辑为奇数在前偶数在后,奇数按照升序排列,偶数按照降序排列. Java ...

  3. 第六次 java实验 紫金学院 泛型02

    类结构如图所示. ​​ 将类结构以代码形式表示,并对方法和构造器提供合理的实现: 使用TestBanking类对代码进行测试. 1.创建类 Account        按要求创建四个方法 packa ...

  4. 第五次实验 紫金学院 集合框架3

    使用TreeSet和Comparator,编写TreeSetTest类,要求对TreeSet中的元素"HashSet"."ArrayList"."Tr ...

  5. 第五次实验 紫金学院 集合框架2

    2. 写MyStack类,实现栈功能,要求在类中使用ArrayList保存数据.写MyStackTest类对栈功能进行测试. 本节实训主要是对栈的操作, 对栈和队列操作已经在数据结构那个专题里面有了, ...

  6. 第五次实验 紫金学院 集合框架1

    写MyQueue类,实现队列功能,要求在类中使用ArrayList保存数据.写MyQueueTest类对队列功能进行测试. 咱们就直接上代码吧,内容很详细了,结合前面的几次实训,本事实训也是很简单的. ...

  7. java泛型实验报告,java实验报告异常集合类和泛型

    java实验报告异常集合类和泛型 成绩: 面向对象原理与 Java 实践课程实验报告实验 3:异常.集合类和泛型姓 名 _ ___ 班 级 _ ___ 学 号 _ ___ 实验地点 _ ___ 实验时 ...

  8. java 实验4 异常

    java 实验4 异常 参考文章: (1)java 实验4 异常 (2)https://www.cnblogs.com/cc123nice/p/10663139.html 备忘一下.

  9. java实验七实验报告_Java实验报告-7-风扇

    Java实验报告 实验题目实验七综合实验风扇 代码: import java.awt.Col or; import java.awt.Graphics; import java.awt.event.A ...

最新文章

  1. Java黑皮书课后题第8章:*8.15(几何:在一条直线上吗)编程练习题6.39给出了一个方法,用于测试三个点是否在一条直线上。编写下面的方法,检测points数组中所有的点是否都在同一条直线上
  2. Google小组研发模式分析 1
  3. Vue源码分析系列四:Virtual DOM
  4. 解决安装SQL Server 2005开发版时,出现“SQL Server 服务无法启动 ”点击重试或取消的解决方法
  5. MySQL 5.6 my.cnf 参数说明(转)
  6. 从 linux内核来看进程与线程的异同
  7. VMware vRealize Operations Manager的内部版本号(2145975)
  8. Bitmap和Drawable的互相转换
  9. java 小总结,以后复习看以看
  10. RemObjects SDK 简介
  11. 查看抽取解压缩和修改war包
  12. 离散时间傅里叶变换Matlab实现
  13. 关于ddos你了解多少?
  14. 一分钟用HCaas搭建Frp内网穿透
  15. 6waves VP张伟:洞悉SLG等品类赛道,直击日本市场的趋势与机遇
  16. week4 day3/4 常用模块
  17. 233网校计算机二级百度云盘6,2014年计算机二级考试《 Access》机考操作题题库(6)...
  18. feof函数的滞后性
  19. html css分页特效,CSS样式表实现效果很好的分页效果源代码
  20. 《花开半夏》--2 两个人的世界

热门文章

  1. 矩阵——对称行列式快解
  2. CentOS 挂载硬盘,适用于fdisk找不到硬盘的场景
  3. 一个CEO的人生感言
  4. 客服人员工作中如何设置快捷回复信息?
  5. windows- 怎么查看本地网卡速度
  6. [NOIP2018 普及组] 摆渡车题解
  7. 红米k30s至尊纪念版和华为畅享20plus哪个好
  8. Spring AOP中自我调用的问题
  9. (1.3.3)插入排序:直接插入、交换插入、折半插入
  10. 用故事讲述淘宝网架构成长的危机与机遇