实验六--除法自定义异常
目录
一、程序运行截图
二、自定义异常
1、异常定义
2、抛出异常
3、生成异常对象
4、错误信息显示
三、代码
一、程序运行截图
二、自定义异常
1、异常定义
(1)自定义异常需要继承exception异常类
(2)构造方法可以使用super传入string参数,该参数表示错误信息
自定义异常例如:
class NegativeException extends Exception{public NegativeException(){}public NegativeException(String s){super(s);}
}
2、抛出异常
(1)在正常的自定义类构造方法中,可以抛出自定义异常,例如(仅为举例,无法运行,throws关键字用于抛出异常)
public chushu(float number1,float number2) throws NegativeException,ZeroException
3、生成异常对象
(1)在构造方法中,满足某项条件,可以生成异常对象,用于后续创建对象出现异常时进入异常类,传入的参数为自定义异常类构造方法所需的string参数,例如(仅为举例,无法运行,注意throw与throws的区别)
if(number2==0){throw new ZeroException("The divisor, "+(int)number2+",could not be zero!");
}
4、错误信息显示
(1)在异常报错时,我们希望能够出现自定义提示字符
(2)用getmessage方法获取自定义异常类构造方法所传入的string参数,作为异常信息输出,例如
catch(NegativeException e){System.out.println(e.getMessage());
}
三、代码
import java.util.Scanner;
class NegativeException extends Exception{public NegativeException(){}public NegativeException(String s){super(s);}
}
class ZeroException extends Exception{public ZeroException(){}public ZeroException(String s){super(s);}
}
public class chushu {private float num1;private float num2;public chushu(float number1,float number2) throws NegativeException,ZeroException{if(number2==0){throw new ZeroException("The divisor, "+(int)number2+",could not be zero!");}else if(number2<0){throw new NegativeException("The divisor, "+(int)number2+", could not be negative!");}else{this.num1 = number1;this.num2 = number2;}}public float xiangchu(){return num1/num2;}public static void main(String[] args) {Scanner s = new Scanner(System.in);System.out.println("Please input first number: ");float x = s.nextFloat();System.out.println("Please input second number: ");float y = s.nextFloat();try{chushu c = new chushu(x, y);System.out.println("Divisor is : "+c.xiangchu());}catch(ZeroException e){System.out.println(e.getMessage()); }catch(NegativeException e){System.out.println(e.getMessage());}finally{System.out.print("finally!");}s.close();}
}
实验六--除法自定义异常相关推荐
- python实验六到十二作业(待完善)
###############实验六 面向对象的程序设计############### #####第一题 # class circle: # def __init__(self,yuanxing, r ...
- 实验六 快速生成树配置
实验六 快速生成树配置 1.准备工作: 工具:1台3层交换机,1台2层交换机,网线 (1) 开始 --> 控制面板 --> 程序 --> 程序和功能 --> 打开或关 ...
- 建立计算机系学生视图,实验六 视图的操作.doc
实验六 视图的操作 实验六 视图的操作 一.实验目的 1.理解的概念. .掌握.SQL语句创建视图,掌握查询分析器的使用 1.语句格式 CREATE VIEW [( [,]-)] AS [WITH C ...
- mysql实验6语言结构_实验六 SQL语言数据查询语言DQL.pdf
实验六 SQL语言数据查询语言DQL 实验六 SQL 语言数据查询语言DQL 一.实验目的 数据查询语言指对数据库中的数据查询.统计.分组.排序等操作.查询语 句可以分为简单查询.连接查询.嵌套查询和 ...
- 滞后超前校正控制器的设计和matlab仿真 静态速度误差系数为10,自控实验六 基于频域的串联校正控制器设置 - GXUZF.COM - 林澈思的茶...
广西大学电气工程学院 <自动控制理论>实验报告 广西大学电气工程学院 <自动控制理论>实验报告 成绩 教师签字 学生姓名 赵帆 学号 17021***** 专业班级 电自171 ...
- 20155201 网络攻防技术 实验六 信息搜集与漏洞
20155201 网络攻防技术 实验六 信息搜集与漏洞 一.实践内容 各种搜索技巧的应用 DNS IP注册信息的查询 基本的扫描技术:主机发现.端口扫描.OS及服务版本探测.具体服务的查点 漏洞扫描: ...
- java实验七输入输出流_实验六_Java的输入输出流
JAVA的输入输出流 实验六 Java的输入输出流 实验目的 1. 理解I/O流的概念,掌握其分类 2. 掌握文本文件读写.二进制文件读写 实验环境 JDK1.4以上版本, Eclipse集成开发环境 ...
- 计算机网络 实验六 静态路由配置,实验六-静态路由配置.doc
实验六-静态路由配置 实验报告书 课程名称 计算机网络技术与应用 实验题目 实验六:静态路由配置 专业班级 2010级信息管理与信息系统2班 学 号 37号 姓 名 肖丹妮 指导教师 赵圆圆老师 计算 ...
- 实验六 Linux进程编程,Linux系统编程实验六:进程间通信
<Linux系统编程实验六:进程间通信>由会员分享,可在线阅读,更多相关<Linux系统编程实验六:进程间通信(10页珍藏版)>请在人人文库网上搜索. 1.实验六:进程间通信l ...
最新文章
- 高逼格的 SQL 写法:行行比较,别问为什么,问就是逼格高。。
- linux uvc 支持的设备,摄像头是否支持uvc
- java闭包矩阵_深刻理解Java闭包概念
- 【转载】在Linux CentOS中安装VSCode用于C++学习,亲测可用
- Ucenter会员同步通讯登录原理(转)
- Web Application:Exploded和Web Application:Archive
- pythonfor循环语句例题_python循环语句的使用练习题
- shell中sed -i特殊字符
- CardLayout布局练习(小的图片浏览器)
- 基于Linux和MiniGUI的嵌入式系统软件开发指南(二)
- vue js 反编译_学会了Vue,前端面试却没找到工作?
- 不学无数——SpringBoot入门VI
- sqlite中字符串含有单引号的处理
- 常用的js自定义方法 -- hasClass addClass removeClass getElementsByClass
- OSChina 周六乱弹 —— 知道今天的乱弹为什么会迟发吗?
- logstash采集中文乱码
- MCMC采样算法理解
- GB/T 35273—2020《信息安全技术个人信息安全规范》正式发布
- java毕业设计水果网店管理系统mybatis+源码+调试部署+系统+数据库+lw
- 2021全国大学生电子设计竞赛F题参赛简记