scjp真题请教....

w19995 2002-01-16 07:02:50
import java.io.IOException;
public class ExceptionTest{
public static void main(String[] args){
try{
methodA();
}catch(IOException e){
System.out.println("Caught IOException");
}catch(Exception e){
System.out.println("Caught Exception");
}
}
public static void methodA(){
throw new IOException();
}
请问这个程序应该输出什么呢?有人能讲出原因吗?
...全文
116 点赞 收藏 16
写回复
16 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Patrick_DK 2002-01-18
C E

猜的
回复
w19995 2002-01-18
再来一道真题:
Which two CANNOT directly cause a thread to stop execting?(choose two)
a,calling the yield method;
b,calling the wait method on an object;
c,calling the notify method on an object;
d,calling the notifyAll method on an object;
e,calling the start method on another Thread object;

请高手指点一二。
回复
forest 2002-01-18
这道题有三点值得注意的:
1.在方法体内如果抛出了异常而又不想在该方法体内处理的化,必须再次抛出。
public static void methodA() throws Exception
{
throw new IOException();
}


2.如果catch块根本不可能捕获到异常的化,编译会出错。

3.如果try对应了多个catch块,程序会寻找第一个匹配的块,然后直接跳到finally(如果有的话)。对于其他块将不作处理。
回复
leo1026 2002-01-17
而且少了一个括号
回复
Patrick_DK 2002-01-17
就是麻,和我的意思一样


回复
inzaghizxy 2002-01-17
agree with maqinglong_2000.
回复
maqinglong_2000 2002-01-17
methodA()改成
public static void methodA() throws Exception
{
throw new IOException();
}
输出Caught IOException
回复
Patrick_DK 2002-01-17
to hailong326(天水蓝) 

你的意思是??????????
回复
maqinglong_2000 2002-01-17
Caught Exception
回复
hailong326 2002-01-17
静态与非静态呀!!!
回复
Patrick_DK 2002-01-17
这么解释总可以了吧
回复
lxj_guitar 2002-01-16
编译出错!Exception java.io.IOExecption 在try语句中永远不会被抛出
methodA()方法后面应该有throws IOException
public static void methodA() throws IOException{
throw new IOException();
}
这样编译就可以通过了
回复
Patrick_DK 2002-01-16
看清楚了,也编译试过了,这道题编译不通过,没有在methodA()处理或者再抛出异常
回复
w19995 2002-01-16
这个题目不是那么简单的吧,大家多想想。
回复
Patrick_DK 2002-01-16
catch可以有多个,但是必须保证“逆向”
~~~~

即先有异常子类,再有父类

如果反过来的话,你试试看,编译都通不过


当一个异常被捕捉处理后,下面的catch就不会再捕捉它了
回复
Patrick_DK 2002-01-16
Caugth IOException

回复
相关推荐
发帖
非技术区
创建于2007-09-28

2.3w+

社区成员

Java 非技术区
申请成为版主
帖子事件
创建了帖子
2002-01-16 07:02
社区公告
暂无公告