Java的异常问题,谢谢帮助!

ZFSDKD 2008-08-04 04:50:54
请问下面的代码为何每次运行的结果都不一样呢?在Eclipse下,运行结果中异常出现的位置有时候在前边有时候在后边?谢谢帮助。
class MyException extends Exception {
private int id;
public MyException(String message, int id){
super(message);
this.id = id;
}
public int getId(){
return id;
}
}

public class TestMyException{
public static void regist(int num) throws MyException{
if(num<0){
throw new MyException("num is errorous",3);
}
System.out.println("The number of registion is :"+num);
}
public static void main(String[] args) throws Exception{
try{
regist(-1);
}catch(MyException e){
System.out.println("The code of error is:"+e.getId());
e.printStackTrace();
}
System.out.println("Operation is over");
}
}


--------------------------------------------------------------------
以下内容为自动编辑的内容,并非楼主的发贴内容,此仅用于显示而已,并无任何其他特殊作用
楼主【angeltom】截止到2008-08-04 16:50:59的历史汇总数据(不包括此帖):
发帖的总数量:1 发帖的总分数:0 每贴平均分数:0
回帖的总数量:1 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:1 结贴的总分数:0
无满意结贴数:1 无满意结贴分:20
未结的帖子数:0 未结的总分数:0
结贴的百分比:100.00% 结分的百分比:---------------------
无满意结贴率:100.00% 无满意结分率:---------------------
敬礼!

取消马甲机器人,请点这里:http://www.java2000.net/mycsdn/robotStop.jsp?usern=angeltom
...全文
84 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZFSDKD 2008-08-05
  • 打赏
  • 举报
回复
5楼的朋友能说的详细一点么?看不明白。
xstom19 2008-08-04
  • 打赏
  • 举报
回复
异常使用err的,正常打印是用out的。
流不一样。
ZangXT 2008-08-04
  • 打赏
  • 举报
回复
单步跟踪看看.
ZFSDKD 2008-08-04
  • 打赏
  • 举报
回复
我的问题就是为什么是不固定的,难道异常又用了一个线程?还是有其他原因?否则感觉应该是按照顺序执行,先打印"The code of error is:3”,然后打印异常信息,这以后还得打印“Operation is over",但顺序总是在变化。为啥?
Rinoajun 2008-08-04
  • 打赏
  • 举报
回复
“运行结果中异常出现的位置有时候在前边有时候在后边”
有可能,顺序不是固定的
ZFSDKD 2008-08-04
  • 打赏
  • 举报
回复
上面的源码没注意格式,重新发一遍。
class MyException extends Exception {
private int id;
public MyException(String message, int id){
super(message);
this.id = id;
}
public int getId(){
return id;
}
}

public class TestMyException{
public static void regist(int num) throws MyException{
if(num<0){
throw new MyException("num is errorous",3);
}
System.out.println("The number of registion is :"+num);
}
public static void main(String[] args) throws Exception{
try{
regist(-1);
}catch(MyException e){
System.out.println("The code of error is:"+e.getId());
//Thread.sleep(1000);
e.printStackTrace();
}
System.out.println("Operation is over");
}
}

62,615

社区成员

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

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