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();
}
请问这个程序应该输出什么呢?有人能讲出原因吗?
...全文
113 点赞 收藏 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

回复
相关推荐
综教楼后的那个坑用双向链表实现 描述   在 LIT 综教楼后有一个深坑,关于这个坑的来历,有很多种不同的说法。其中一种说法是,在很多年以前,这个坑就已经在那里了。这种说法也被大多数人认可,这是因为该坑有一种特别的结构,想要人工建造是有相当困难的。   从横截面图来看,坑底成阶梯状,由从左至右的 1..N 个的平面构成(其中 1 ≤ N ≤ 100,000),如图:    *            * :    *            * :    *            * 8    *    **      * 7    *    **      * 6    *    **      * 5    *    ********* 4 <- 高度    *    ********* 3    ************** 2    ************** 1 平面 |  1  |2|   3    | 每个平面 i 可以用两个数字来描述,即它的宽度 Wi 和高度 Hi,其中 1 ≤ Wi ≤ 1,000、1 ≤ Hi ≤ 1,000,000,而这个坑最特别的地方在于坑底每个平面的高度都是不同的。每到夏天,雨水会把坑填满,而在其它的季节,则需要通过人工灌水的方式把坑填满。灌水点设在坑底位置最低的那个平面,每分钟灌水量为一个单位(即高度和宽度均为 1)。随着水位的增长,水自然会向其它平面扩散,当水将某平面覆盖且水高达到一个单位时,就认为该平面被水覆盖了。   请你计算每个平面被水覆盖的时间。    灌水 水满后自动扩散 | | * | * * | * * * * V * * V * * * * * * .... * *~~~~~~~~~~~~* * ** * *~~~~** : * *~~~~**~~~~~~* * ** * *~~~~** : * *~~~~**~~~~~~* * ** * *~~~~**~~~~~~* *~~~~**~~~~~~* * ********* *~~~~********* *~~~~********* *~~~~********* *~~~~********* *~~~~********* ************** ************** ************** ************** ************** **************    4 分钟后    26 分钟后        50 分钟后    平面 1 被水覆盖     平面 3 被水覆盖    平面 2 被水覆盖输入   输入的第一行是一个整数 N,表示平面的数量。从第二行开始的 N 行上分别有两个整数,分别表示平面的宽度和高度。 输出   输出每个平面被水覆盖的时间。
发帖
非技术区
创建于2007-09-28

2.3w+

社区成员

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