小白问JAVA考题

看程序写结果classTest3{publicstaticvoidmain(String[]args){try{callMethod();}catch(Exception... 看程序写结果
class Test3
{
public static void main(String []args){
try
{
callMethod();
}
catch(Exception e)
{
System.out.print("will");
}
System.out.println("win");
}
static void createException()
{
throw new ArithmeticException();
}
static void callMethod()
{
try
{
createException();
System.out.print("not");
}
catch(ArrayIndexOutOfBoundsException e)
{
System.ou.print("you");
}
finally
{
System.out.print("I");
}
System.out.print("never");
}
输出的结果是什么?为什么?
请详细说明,感激不尽
展开
 我来答
tongxuefengwo
2009-10-20 · TA获得超过697个赞
知道小有建树答主
回答量:495
采纳率:0%
帮助的人:310万
展开全部
createException()方法在执行的时侯会抛出一个 ArithmeticException异常 但是 callMethod()
方法的捕获的时侯却捕获的是个ArrayIndexOutOfBoundsException
异常 ,这个方法的也抛出了一个异常 ,但是里面有一是finally 所里面的I被 打印,callMethod()抛出的异常被 Exception 这个对像接收所以会打印will这个和下面的win
第8感超人
2009-10-19 · TA获得超过659个赞
知道小有建树答主
回答量:529
采纳率:0%
帮助的人:320万
展开全部
public class testFinally {
public static int test(){
try{
System.out.println("try");
}catch(Exception exp){
System.out.println("catch");
return 0;
}finally{
System.out.println("finally");
}
System.out.println("after finally");
return 1;
}
public static void main(String[] args) {
System.out.println(test());
}
}
运行结果:
try
finally
after finally
1
结论1:当try里面的代码没有异常的时候,会执行该try块对应的finally块,并继续执行finally之后的代码

public class testFinally {
public static int test(){
try{
System.out.println("try");
int i = 0;
int r = 7/i;
}catch(Exception exp){
System.out.println("catch");
return 0;
}finally{
System.out.println("finally");
//return 2;
}
System.out.println("after finally");
return 1;
}
public static void main(String[] args) {
System.out.println(test());
}
}
运行结果:
try
catch
finally
0
结论2:当try里面的代码出现异常的时候,会执行该try块对应的catch块和finally块,且即使catch中有返回finally也是要执行。法调用是执行完finally中的语句,再返回catch中的return。

public class testFinally {
public static int test(){
try{
System.out.println("try");
int i = 0;
int r = 7/i;
}catch(Exception exp){
System.out.println("catch");
return 0;
}finally{
System.out.println("finally");
return 2;
}
}
public static void main(String[] args) {
System.out.println(test());
}
}
运行结果:
try
catch
finally
2
结论3:相对于结论2,finally中如果有return的情况,那么即使catch中有return,这个return也不起作用,该方法调用要到finally中的return才返回

public class testFinally {
public static int test(){
try{
System.out.println("try");
int i = 0;
int r = 7/i;
}catch(Exception exp){
System.out.println("catch");
return 0;
}finally{
System.out.println("finally");
return 2;
}
System.out.println("after finally");
return 1;
}
public static void main(String[] args) {
System.out.println(test());
}
}
编译不通过
System.out.println("after finally");
return 1;
为unreachable statement
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
秒杀用了一分钟
2009-10-20 · TA获得超过512个赞
知道小有建树答主
回答量:530
采纳率:0%
帮助的人:223万
展开全部
you win i never
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
手机用户72301
2009-10-20
知道答主
回答量:13
采纳率:0%
帮助的人:2万
展开全部
Iwillwin
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式