版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验五 异常处理一、实验目的1. 学会利用Try-catch-finally语句来捕获和处理异常;2. 掌握自定义异常类的方法。二、实验要求1. 通过编程理解系统异常处理的机制和创建自定义异常的方法。2. 掌握基础类。三、实验内容(一)异常处理机制1. 编写使用 trycatch 语句处理异常的程序文件Demo4_1.java,源代码如下: public class Demo3_1 public static void main(String arg3) ("这是一个异常处理的例子n"); try int i=10; i /=0; catch (ArithmeticExce
2、ption e) ("异常是:"+e.getMessage(); finally ("finally 语句被执行"); l 编译并运行程序。 注意:如果在 catch 语句中声明的异常类是 Exception,catch 语句也能正确地捕获,这是因为 Exception是ArithmeticException的父类。如果不能确定会发生哪种情况的异常,那么最好指定catch的参数为 Exception,即说明异常的类型为 Exception。2、源文件是Demo3_2.java。要捕捉的异常是除数为零和数组下标越界。通过修改a和c下标值体验程序。publi
3、c class Demo3_2 public static void main (String args)int a, b;int c=1,2,3;try a=10; b=100/a; ("当前a值:"+a); c2=200; ("当前数组长:"+c.length); catch(ArithmeticException e) ("除零错误:"+e); catch(ArrayIndexOutOfBoundsException e) ("数组下标越界:"+e); finally ("我是finally&quo
4、t;); ("我能被正常执行到");【思考】 先运行上面程序,观察运行结果。 按下条件分别修改数据,编译后运行,观察输出结果,分析在trycatch块里那些语句没有被执行,为什么? 块外那些语句可被执行到,为什么?修改a=0, 保持c2=200;保持a=10,修改c3=200,修改a=0, 修改c3=200; 再添加一个catchException e ,位置在最前面,观察编译信息,说明什么?3、编写Demo3_3.java 程序,计算两数相除并输出结果。使用两个catch子句,分别捕捉除数为0的异常和参数输入有误异常。源代码如下:import java.io.*;clas
5、s Demo3_3public static void main(String args ) tryBufferedReader strin=new BufferedReader ( new InputStreamReader(System .in);System .out .print("请输入除数:");String cl=strin .readLine();int a=Integer .parseInt(cl);System .out .print("请输入被除数:");cl=strin .readLine();int b=Integer .par
6、seInt(cl);int c=b/a;System .out .println("商为:"+c);catch(NumberFormatException e)System .out .println("请输入整数!");/e .printStackTrace();/捕获除数为0的异常catch(ArithmeticException e)System .out .println("除数不可以0!"); /e .printstackTrace(); /捕获与I/O有关的异常catch(IOException e)e.printStac
7、kTrace(); /捕获数值转化时的异常,如不能将字符转化成数值 编译并运行,当输入除数为0时,将有异常出现,当输入的不是整数时,如将30输成了3o,出现的是另一种异常。(二)自定义异常类4、注意throw、throws的使用。源文件是Demo3_4.java。package sy3;class MyException extends Exceptionpublic String toString()return "除数等于零" class DIVdouble div(double x,double y) throws MyExceptionif(y=0) throw n
8、ew MyException();else return (x/y);public class Demo3_4 public static void main (String args) double z;DIV d=new DIV(); try z=d.div(100,0); ("当前z值:"+z); catch(MyException e) (e.toString(); 【思考】 修改try.catch中语句z=div.DIV(100,0)入口参数,观察运行结果。 z=d.div(100,10);z=d.div(100,0); 将try.catch语句注释掉,观察编译信
9、息。 上面条件保持,在main函数后面加上throws MyException再重新编译,能否通过?然后运行观察结果,得到什么结论?2编写程序Demo3_5.java,包含自定义异常,当输入数值为13和4时抛出该异常。源代码如下:class Ex3_5 extends Exception Ex3_5 (String msg) super(msg); class Demo3_5private int x;void setX(int x) this.x=x; void f1() throws Ex3_5 if(x=13) throw new Ex3_5("I dont like 13!&
10、quot;);else if(x=4)throw new Ex3_5("I dont like 4!");else System .out.println(100/x);public static void main(String args ) Demo3_5 a=new Demo3_5(); try a.setX(5); /a.setX(13);/a.setX(4);/a.setX(0);a.f1();catch(Ex3_5 e) System.out.println("get message:"+e.getMessage();【思考】编译并运行,分别
11、取消注释上面程序中被注释的语句。当释放a.setX(13)语句后,查看运行结果,当释放a.setX(4)语句后,查看运行结果,当释放a.setX(0)语句后,查看运行结果。四、实验练习题1、编写Java程序,创建数组后,对数组访问时发生的数组越界.实验使用try-catch语句处理该异常。运行结果如图所示。import java.io.*;public class Demo3_6 public static void main(String arg3) try BufferedReader strin=new BufferedReader ( new InputStreamReader(System .in); System.out.println("请输入创建数组的个数:n"); String cl=strin.readLine(); int a=Integer .parseInt(cl); System.out.println("数组创建完毕!您要查找那个元素?n"); String c2=strin.read
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 恶性肿瘤患者围化疗期心理干预
- 2026年全国各地中考试题分类古诗词阅读及答案
- 零售药店医疗器械各岗位培训考核试题及答案
- 2026年山东省栖霞市高三历史上册期末考试自测卷附完整答案【考点梳理】
- 2026年贵州省福泉市高三历史下册期末考试测试卷附完整答案(夺冠)
- 2026年辽宁省调兵山市高三历史下册期末考试考试卷含答案(预热题)
- 2026年浙江省余姚市高三历史下册期末考试检测卷及参考答案(基础题)
- 2026澳大经济学面试题及答案
- 2026安全运维岗位面试题及答案
- 保安员岗前安全培训考核试卷含答案
- 2026年十五五时期东北全面振兴取得新突破战略规划深度解读
- SAE AS9100D 航空航天质量管理体系培训课件
- 医保违规培训课件
- 中药炮制师实操技能考核评分标准试题
- 吸入变应原皮下注射集群免疫治疗专家共识
- 借名贷款买车协议书
- DBJ∕T 15-134-2018 广东省地下管线探测技术规程
- 【MOOC】《大学物理的数学基础》(西南交通大学)章节期末慕课答案
- 光计算技术在智能时代的发展现状、问题与前景
- 阳光512灯控台说明书
- DB53T 1447.6-2025 公路工程施工安全风险分级管控和隐患排查治理双重预防体系建设指南+第6部分:公路交通安全设施、绿化及环境保护工程
评论
0/150
提交评论