java异常类匿名类实验报告Word格式.docx

上传人:b****1 文档编号:1550815 上传时间:2023-04-30 格式:DOCX 页数:15 大小:118.09KB
下载 相关 举报
java异常类匿名类实验报告Word格式.docx_第1页
第1页 / 共15页
java异常类匿名类实验报告Word格式.docx_第2页
第2页 / 共15页
java异常类匿名类实验报告Word格式.docx_第3页
第3页 / 共15页
java异常类匿名类实验报告Word格式.docx_第4页
第4页 / 共15页
java异常类匿名类实验报告Word格式.docx_第5页
第5页 / 共15页
java异常类匿名类实验报告Word格式.docx_第6页
第6页 / 共15页
java异常类匿名类实验报告Word格式.docx_第7页
第7页 / 共15页
java异常类匿名类实验报告Word格式.docx_第8页
第8页 / 共15页
java异常类匿名类实验报告Word格式.docx_第9页
第9页 / 共15页
java异常类匿名类实验报告Word格式.docx_第10页
第10页 / 共15页
java异常类匿名类实验报告Word格式.docx_第11页
第11页 / 共15页
java异常类匿名类实验报告Word格式.docx_第12页
第12页 / 共15页
java异常类匿名类实验报告Word格式.docx_第13页
第13页 / 共15页
java异常类匿名类实验报告Word格式.docx_第14页
第14页 / 共15页
java异常类匿名类实验报告Word格式.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

java异常类匿名类实验报告Word格式.docx

《java异常类匿名类实验报告Word格式.docx》由会员分享,可在线阅读,更多相关《java异常类匿名类实验报告Word格式.docx(15页珍藏版)》请在冰点文库上搜索。

java异常类匿名类实验报告Word格式.docx

try{

a=Integer.parseInt(args[0]);

//语句1

b=10;

//语句2

}

catch(NumberFormatExceptione){

a=1;

System.out.println(a);

System.out.println(b);

}

(1)执行上述ExceptionTest1类(在命令提示符下敲入javaExceptionTest199)

运行结果:

(2)执行上述ExceptionTest1类(在命令提示符下敲入javaExceptionTest1a)

(3)比较上面两次运行的结果,说明原因。

(思考:

执行语句1时发生异常,语句2执行没有?

执行语句1时没有发生异常,语句2执行发生异常。

因为在源代码中写有

try{

当在运行代码时,若在文件名后面输入的是整数,则不会发生异常,try代码块的下面的代码继续执行,而当输入的是字符或是字符串时,try代码块会捕获错误的信息,但是并没有运行下面的代码,如果try代码块中添加了finally部分,将原来的System.out.println(a);

System.out.println(b);

填入到finally中,则无论有没有发生异常,都能执行到finally中的代码。

2.编译下面的程序,并回答问题。

classExceptionTest2{

inta=0;

(1)编译上述程序,是否出错?

出错

(2)如果出错,给出出错信息(即javac编译该文件出错信息):

分析为何出错?

出错原因:

try和catch或finally是成对出现的,不能出现了try,而后面就没有了catch或者finally

(3)如果将程序改写为:

classExceptionTest2{

}

上述程序是否编译出错?

为什么?

上述程序中try与catch是成对出现的,所以编译不会出错。

(4)如果将程序改写为:

finally{

不出错

当出现了try时,后面要么接catch,要么接finally,但是不能这两个都不接。

(4)如果将程序改写为:

catch(Exceptione){

a=1;

a=2;

分析为何出错,如何修改程序使之正确?

处理子类异常的catch代码块要写在前面,超类写在后面。

3、编译下面的程序,并回答问题。

classExceptionTest3{

check(-1);

staticvoidcheck(inti){

if(i<

0)thrownewException();

(1)上述程序编译是否出错?

分析错误原因:

(2)将上述程序修改为:

staticvoidcheck(inti)throwsException{

那么,上述程序编译是否出错?

分析出错原因:

4.编译下面程序,回答问题。

classExceptionTest4{

method3();

System.out.println("

success!

"

);

staticvoidmethod1(){

thrownewException();

staticvoidmethod2(){

method1();

staticvoidmethod3(){

method2();

编译错误是什么?

(2)修正上述程序(通过两种方式:

给方法添加throws子句,或者使用try-catch-finally)。

try{

}catch(Exceptione){

//TODO自动生成catch块

e.printStackTrace();

(3)如果将方法method1中的thrownewException();

更改为:

thrownewRuntimeException();

那么程序是否编译通过?

通过

如果编译正常,那么执行ExceptionTest4类,出现什么结果(是否会显示success字符串)?

如何修改程序使得能够显示success字符串?

try{

method3();

}catch(RuntimeExceptione){

thrownewRuntimeException();

5、设计一个简单的类ExceptionTest,在该类的main方法中实现:

将输入参数args[0]转换为int类型的数字(要求使用包装类的数字转换方法,并通过try-catch-finally方式捕获并处理转换异常),然后显示这个数字的平方值。

比如,在命令提示符下输入ExceptionTest9并回车,程序显示81。

classExceptionTest{

//语句1

System.out.println(a+"

的平方值为:

+a*a);

二、匿名类实验

1.运行下面的Test类,写出运行结果,并分析比较代码1与代码2两种方式的异同

abstractclassA{

abstractvoidabc();

voidbbb(){abc();

classBextendsA{

voidabc(){System.out.println("

bbb"

classTest{

staticvoidf(Aa){a.bbb();

f(newA(){

}

);

//代码1

f(newB());

//代码2

代码1和代码2的异同:

代码1是通过匿名类来实现在代码块中对于A类的继承和对象的创建,此时这个创建好的对象就相当于staticvoidf(Aa){a.bbb();

}中参数值a。

代码2则是直接通过在Test2类中的方法staticvoidf(Aa){a.bbb();

}中的参数部分直接创建议了一个A类的对象,然后实现了该方法的功能。

2.运行下面的Test类,写出运行结果,并分析比较代码1与代码2两种方式的异同

interfaceIA{

voidabc();

voidbbb();

classAimplementsIA{

publicvoidbbb(){System.out.println("

ccc"

publicvoidabc(){System.out.println("

staticvoidf(IAa){a.bbb();

f(newIA(){

f(newA());

//代码2

代码1和代码2的异同在于:

代码1是通过在方法块中利用匿名类来实现接口IA,并同时创建对象,该对象就成为f方法所需要传递进去的参数值;

代码2是直接给f方法创建了一个对象作为参数值。

实验报告要求

将编程题源程序、运行结果,以及实验中遇到的问题和解决问题的方法,写在实验报告上。

温馨提示:

最好仔细阅读后才下载使用,万分感谢!

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 电力水利

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2