实验目的

  1. 了解异常的概念和异常处理机制
  2. 掌握捕捉异常的方法
  3. 掌握创建自定义异常

实验学时 2学时

实验内容

  1. 编写一个程序,要求从键盘输入一个圆的半径(double类型),计算并输出圆的面积。在没有加入异常处理机制时,输入的数据不是double型数据(如字符串“abc”)会产生什么结果?加入异常处理机制后,让程序在输入不正确的类型数据时给出错误提示并要求重新输入。

结果:输入数据格式不匹配

实现代码:

import java.util.InputMismatchException;import java.util.Scanner;public class Test1 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);try {double r = sc.nextDouble();double s = 3.14 * r * r;System.out.println("圆的面积为:" + s);} catch (InputMismatchException e) {System.out.println("请以正确的形式输出");}}}

2.分析下面的程序。

(1)程序在运行时会产生哪些异常?怎样捕获并处理异常?

(2)修改代码:不管程序在执行过程中会不会产生异常,最后都输出“程序运行结束”

import java.util.Scanner;

public class ExceptionSample {

public static void main(String[] args) {

Scanner sc=new Scanner(System.in);

int a[]=new int[5];

int n,sum=0;

float average;

n=sc.nextInt();

for(int i=0;i<n;i++){

a[i]=sc.nextInt();

sum=sum+a[i];

}

average=(float)sum/n;

System.out.println(average);

}

}

(1)数组越界异常、输入格式不匹配异常、算数异常。try语句里面存放异常可能发生的地方,catch语句用于捕获cry语句中发生的异常。

(2)修改后代码:

import java.util.Scanner;public class Test2 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("输入n个整数");int a[] = new int[5];int n, sum = 0;float average;n = sc.nextInt();sc.close();try {for (int i = 0; i < n; i++) {a[i] = sc.nextInt();sum = sum + a[i];}average = (float) sum / n;System.out.println(average);System.out.println("程序运行结束");} catch (Exception e) {System.out.println("程序运行结束");}}
}

     

3.设计一个程序,输入两个整数和一个算术运算符(+、-、*、/),根据运算符,计算两个整数的运算结果。考虑到用户输入的数据不合法,需要捕获异常(数据格式异常、除零异常、非法运算符异常)。

实现代码:

   import java.util.InputMismatchException;import java.util.Scanner;public class Test3 {public static void main(String[] args)  {Scanner sc = new Scanner(System.in);try {System.out.println("请输入两个整数,一个算数运算符(+,-,*,/)");int x = sc.nextInt();int y = sc.nextInt();String str = sc.next();String a = "+";String b = "-";String c = "*";String d = "/";if (str.equals("+") == true) {System.out.println(x + y);} else if (str.equals("-") == true) {System.out.println(x - y);} else if (str.equals("*") == true) {System.out.println(x * y);} else if (str.equals("/") == true) {System.out.println(x / y);}else{throw new positiveException();}//当异常被引发时,每个catch子句被依次检查,第一个匹配异常类型的子句执行} catch (InputMismatchException e) {System.out.println("输入的数据格式不匹配!");}  //当一个catch子句执行以后,其他的子句将被旁路。catch (ArithmeticException e) {System.out.println("除数为0!");}catch(positiveException e){System.out.println("非法运算符");}}}

4.设计一个程序,根据三角形的三边求三角形面积。要求自定义一个异常类IllegaException,在求面积的方法area()中声明抛出这个异常类型,当从键盘输入三条边的数据不能构成三角形时抛出异常。

运行代码:

import java.util.Scanner;public class Test4 {public static void main(String[] args) {Scanner sc=new Scanner(System.in);System.out.println("输入三角形的三边:");int a=sc.nextInt();int b=sc.nextInt();int c=sc.nextInt();sc.close();try{if(a+b<=c||a+c<=b||b+c<=a){throw new IllegaException();}double s=(double)(a+b+c)/2;double d=Math.sqrt(s*(s-a)*(s-b)*(s-c));System.out.println(d);}catch(IllegaException e){System.out.println("输入数据不能构成一个三角形");}}}//自定义异常class IllegaException extends Exception{public    IllegaException() {//自定义异常的无参构造方法super("输入数据不能构成一个三角形");}}

java实验报告8 异常处理相关推荐

  1. JAVA实验报告九异常处理_JAVA实验报告_Java异常处理

    贵州大学实验报告 学院:计信学院专业:网络工程班级:101 姓名学号实验组实验时间05.27 指导教师肖源源成绩 实验项目名称Java异常处理 实验目的1)掌握Java异常的概念及工作机制 2)掌握异 ...

  2. JAVA实验报告九异常处理_Java课后练习9(异常处理)

    动手动脑1: import javax.swing.*; class AboutException { public static void main(String[] a) { int i=1, j ...

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

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

  4. java实验报告可下载_JAVA实验报告.doc

    JAVA实验报告.doc 学 生 实 验 报 告 册(理工类)课程名称面向对象程序设计 专业班级16计算机科学与技术(专转本) 学生学号 1613203022 学生姓名 张义丹 所属院部 计算机工程 ...

  5. 车站检查危险品 JAVA,第八周Java实验报告六

    Java实验报告 实验四类的继承 一.实验目的 (1)       理解异常的基本概念: (2)       掌握异常处理方法及熟悉常见异常的捕获方法. 二.实验要求 (1)       练习捕获异常 ...

  6. Java实验报告实验4

    Java实验报告实验4 课程名称: 面向对象程序设计 实验类型: 设计型 实验项目名称: 综合设计 实验地点: 实验日期: 2021 年 月 日 成绩: 一.实验目的及要求 掌握Java GUI图形用 ...

  7. java浏览器实验报告_关于java实验报告模板

    关于java实验报告模板 1.掌握Java Applet的程序结构和开发过程. 2.学会编写Applet对应的HTML文件,掌握从HTML文件向Applet传递参数的方法. 3. 掌握文本框对象的使用 ...

  8. java实验报告 05 类与_java程序设计类与方法-java实验报告

    java程序设计类与方法-java实验报告 java程序设计类与方法-java实验报告 1. 实验内容或题目 (1) 编写Java应用程序,实现以下功能:当应用程序运行后,根据屏幕提示进行交互式输入并 ...

  9. java 实验报告模板_Java实验报告模板.doc.doc

    Java实验报告模板.doc 实 验 报 告 课程名称Java面向对象程序设计实验名称检查危险品姓名吴超益学号201424134114专业年级14物联网一.实验目的: 本实验的目的是让学生掌握try- ...

最新文章

  1. 反向R?削弱显著特征为细粒度分类带来提升 | AAAI 2020
  2. MongoDB自增主键
  3. Chroot vsftpd with non-system users (ftp)
  4. zookeeper在Dubbo中的作用
  5. mac 显示隐藏文件_如何在Mac上显示隐藏文件?苹果mac显示隐藏文件夹方法
  6. 前端学习(3204):类式组件
  7. 毕业设计-基于Python爬虫的疫情数据可视化系统
  8. Vue深入学习3—数据响应式原理
  9. Linux第二周学习笔记(12)
  10. tcp发送方的发送速度由接收方给出的接收窗口决定_TCP协议的详解
  11. 【Java】IntelliJ IDEA 14.x 与 Tomcat 集成,创建并运行Java Web
  12. 考研数据结构中的代码如何写——线性表的顺序存储
  13. windows动态ip和静态ip的bat文件
  14. 2019第八届“中国软件杯”大学生软件设计大赛赛题有哪些?
  15. 少儿编程的感想与实践
  16. 项目国际化I18N多语言切换
  17. SAP-FI 科目的统驭科目类型设置错了如何更改
  18. 用两个栈实现最小栈的功能
  19. 房地产数据-python爬虫+数据可视化
  20. 阿里云网盘,图什么?

热门文章

  1. 错误:CreateProcess error=206, 文件名或扩展名太长。
  2. matlab对一类系统仿真,基于MATLAB的一类离散事件动态系统仿真
  3. RSA Conference 2019 APJ宣布创智赢家(R)式创新计划入围者和早期阶段初创公司展览中极具前景的初创公司
  4. HRMS是什么?有什么作用?
  5. 虎口夺食! 打破Facebook谷歌垄断, MIT大神和他的区块链数据库传奇! |人物志
  6. 房市云里雾里,58、我爱我家抱团取暖还是各怀鬼胎
  7. Android --- SQLite增删改查的语句
  8. MacBook IDEA激活码
  9. 卷积物理意义的超强解释
  10. 某学生参加唱歌比赛。输入8位评委的成绩,求平均分 并输出。