各位JAVA大虾帮忙解决一下

xueshniitcn 2012-03-05 10:58:07
class A{
int f(int a,int b){
int m;
m = a/b;
System.out.printf("CCCCC\n");
return m;
}
}
class Test{
public static void main(String[] args){
A aa = new A();


try{
aa.f(6,0);
}
catch(ArithmeticException e){
e.printStackTrace();
System.out.printf("AAAAA\n");
}

System.out.printf("BBBBB");
}
}
为什么没输出"CCCCC"啊,说的详细点啊,
class A{
int f(int a,int b){
int m;
try{
m = a/b;
}
catch(Exception e){

System.out.printf("AAAAA\n");
}
System.out.printf("CCCCC\n");
return m;
}
}
class M{
public static void main(String[] args){
A aa = new A();
aa.f(6,0);
System.out.printf("BBBBB");
}
}
为什么这样会是错误的啊
...全文
72 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
菖蒲老先生 2012-03-05
  • 打赏
  • 举报
回复
a/b 除数不能为0的

改成aa.f(6,1);试试。。。

===================================

class A里的m没有初始化,

改成int m = 0;
zxclovedsy 2012-03-05
  • 打赏
  • 举报
回复
首先 前面为什么没有打印出CCCCCC
原因是你的程序在aa.f(6,0)处就抛了异常
所以执行catch里面的代码

后面为什么会报错
原因在于你catch里面并没有return返回值

23,404

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧