版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学习目标学会自定义异常类的定义和使用主要内容自定义异常类创建与抛出自定义异常【案例5-1】学生信息的录入1.自定义异常在程序中除了经常使用的系统预定义异常类,如用0作除数、下标越界、数据格式错误、输入/输出异常等错误,在具体的开发过程中还会遇到系统没有定义的错误,如学生的成绩只能在0~100分之间、性别只可以是“男、女”,如果超出范围或取其他值,则认为出错。对于这种情况,程序员需要自己定义异常类。1.自定义异常自定义异常类必须继承Exception或其子类。格式为: class自定义异常类名extendsException{ //异常类体; }在自定义的异常类中,一般要声明两个构造方法:一个是不带参数的构造方法;另一个是以字符串为参数的构造方法。2.创建与抛出自定义异常使用如下的语句创建一个MyException类的异常:MyExceptione=newMyException(“这是自定义的一个异常类实例”);创建好的异常类对象,只有抛出后才可以被程序捕获。抛出创建的异常e时,要使用throw语句:throwe;如要抛出的异常只使用一次,则可以将以上两步如下的简单格式书写:thrownewMyException(“这是自定义的一个异常类实例”);2.创建与抛出自定义异常【例5-4】自定义异常类的创建及使用publicclassEx5_4{ publicstaticvoidmain(String[]args){ try{ printLetter('2'); }catch(NotLetterExceptione){ System.out.println(e.getMessage()); } } //定义方法
printLetter,声明该抛出NotLetterException异常 publicstaticvoidprintLetter(charc)throwsNotLetterException{ if(!(c>'a'&&c<'z'||c>'A'&&c<'Z')){ thrownewNotLetterException(); } System.out.println("这个字母是:"+c); }}//自定义异常类NotLetterExceptionclassNotLetterExceptionextendsException{ NotLetterException(){ super("不是英文字符!"); }}2.创建与抛出自定义异常程序中声明了自定义异常类NotLetterException继承自Exception,是一种运行时异常,代表“不是英文字母”异常。在printLetter方法声明部分,使用throws声明方法抛出自定义异常,在方法内部判断参数c是否为英文字母,如不是,则用throw抛出NotLetterException类对象,表示程序中出现了这种错误。若已抛出错误,后面的代码就不再执行了。主方法中,因为调用了带有检查异常的方法printLetter(),在程序中使用try{}catch语句进行了异常的捕获和处理。【案例5-1】学生信息的录入案例描述设计一个程序,从键盘上输入学生的姓名、性别、年龄、成绩等信息。要求对从键盘上输入的性别、年龄、成绩进行合法性判定:性别只能是“男”或“女”;年龄范围是10~80;成绩范围0~100。【案例5-1】学生信息的录入案例描述设计一个程序,从键盘上输入学生的姓名、性别、年龄、成绩等信息。要求对从键盘上输入的性别、年龄、成绩进行合法性判定:性别只能是“男”或“女”;年龄范围是10~80;成绩范围0~100。案例运行效果如右图:【案例5-1】学生信息的录入设计目标理解“学生信息的录入”程序设计思路;掌握自定义异常类的使用方法;能够在程序中完成异常处理;学会使用throw抛出创建的异常;能够独立完成“学生信息的录入”程序的编写、编译和运行。【案例5-1】学生信息的录入实现思路
程序代码
分析案例描述,我们设计用Student类封装学生信息,包括姓名、性别、年龄、成绩属性。因为需要对性别、年龄、成绩的录入值做合法性判定,可以用三个自定义异常类代表性别、年龄、成绩不合法的情况;然后在录入学生信息的程序段做异常的捕获和处理。定义学生类Student封装学生信息;定义三个自定义异常类,性别异常类(SexException)、年龄异常类(AgeException)、成绩异常类(MarkException)代表性别、年龄及成绩不合法的异常;在录入信息的主方法中做合法性判断:性别如果不是“男”或者“女”,抛出SexException异常;如果年龄大于80或者小于10,抛出AgeException异常;如果成绩大于100或小于0,就抛出MarkException异常。然后在异常处理程序块(即catch块)中进行处理;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年高校辅导员竞聘笔试模拟题
- 2026年变电站运行维护试题
- 2026年法律职业资格C证法考仿真题集
- 功血患者的护理评估标准
- 2026年助理工程师考试仿真题及答案
- 2026年危险化学品安全管理知识培训
- ICU护理中的人文关怀与家属沟通
- 2026年人力资源管理师组织行为学仿真题解析
- 2026年医师资格考试预防医学题
- 2026年安全生产责任制及考核
- 曝气生物滤池课件
- 雨课堂学堂云在线《情商与智慧人生(海南师大 )》单元测试考核答案
- 2024年蚌埠辅警招聘考试真题及1套完整答案详解
- DB61∕T 1343-2020 地理标志产品柞水木耳
- 二级配电箱安全操作规程
- 2025年一级注册计量师真题答案解析
- 《防止电力建设工程施工安全事故三十项重点要求》宣贯与解读
- 新生儿乳糖不耐受诊断和治疗专家共识(2025年)解读 4
- 高校非学历教育质量评估标准
- 艾梅乙反歧视培训
- 2025年湖南省长沙市初中学业水平考试中考(会考)生物试卷(真题+答案)
评论
0/150
提交评论