欢迎来到天天文库
浏览记录
ID:62033601
大小:20.50 KB
页数:4页
时间:2021-04-15
《JAVA抛出异常的实验.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验内容1.下面函数的返回值是多少?intnormal(){ try{ return 10; }catch(Exceptione){ return5; }finally{ return20; }}2。下面程序的运行结果?publicclassJVMTest{publicstaticvoidmain(String[] args){ﻩSystem。out。println(”aa:"+ aa());}publicstaticintaa(){inta=1;ﻩintb=10;try{ ﻩSystem.ou
2、t.println("abc");ﻩreturn a;}finally{a = 2;System.out.println("a:"+ a);ﻩ}}}3.为一个类定义两个方法,F()和G().在G()里,抛出一个你定义的新异常.在F()里,调用G(),捕获它抛出的异常,并且在catch子句里抛出另一个异常(你要定义的第二种异常).在main()里测试你的代码。4。建立一个三层的异常继承体系,然后创建基类A,它的一个方法能抛出异常体系的基类异常。用B继承A,并且重载这个方法,让它抛出第二层的异常。让C继承B,再次
3、重载这个方法,让它抛出第三层的异常。在main()里面创建一个C类型的对象,把它向上转型为A,然后调用这个方法.结论1:当try里面的代码没有异常的时候,会执行该try块对应的finally块,并继续执行finally之后的代码.结论2:当try里面的代码出现异常的时候,会执行该try块对应的catch块和finally块,且即使catch中有返回finally也是要执行。也就是先执行完finally中的语句,再返回catch中的return。结论3:相对于结论2,finally中如果有return的情况,那
4、么即使catch中有return,这个return也不起作用,该方法调用要到finally中的return才返回。classAextendsException{ﻩ}class B extendsException{ﻩ}publicclass JVMTest{public staticvoidmain(String[] args){ﻩtryﻩ{ﻩﻩﻩF();ﻩ}catch(B b){ﻩSystem.out.println("捕获第二个异常");ﻩ}}ﻩ static voidG()throwsA{ Syste
5、m.out.println("抛出第一个异常”); ﻩthrow new A(); }staticvoidF() throwsB { ﻩtry {ﻩﻩG();}ﻩcatch(Aa) ﻩ{ System。out.println("捕获第一个异常"); ﻩthrownew B(); } }}//---——-—-----——--——--—---—---—-—----——----—-—-----——-------——---—-classMyException1extendsException{ﻩ}classM
6、yException2 extendsMyException1{ﻩ}classMyException3extendsMyException2{ﻩ}classA{void F()throwsMyException1ﻩ{throw newMyException1();ﻩ}}class BextendsA{voidF(inti)throwsMyException2{ﻩthrownewMyException2();ﻩ}}classCextendsB{ﻩvoidF(inti,Strings)throws MyExcep
7、tion3ﻩ{ﻩthrow newMyException3();}}publicclassJVMTest{publicstaticvoidmain(String[] args){ﻩCc=new C();ﻩAa=c;try{a.F();ﻩ}catch(MyException1e){}}}
此文档下载收益归作者所有