关于异常的问题,大家进来说说

pcz607 2008-04-25 01:07:33
import javax.swing.JOptionPane;

public class SumNumber {

String a;
String b;
int x;
int y;

//String sum ;


/**
* @param args
*/
public static void main(String[] args) {

// TODO 自动生成方法存根
SumNumber sn = new SumNumber();
try{
sn.a = JOptionPane.showInputDialog("第一个值") ;
sn.x = Integer.parseInt( sn.a );
sn.b = JOptionPane.showInputDialog("第二个值") ;
sn.y = Integer.parseInt( sn.b );
//sn.sum = sn.a + sn.b;
JOptionPane.showMessageDialog(null,"两数相乘 = "+sn.x * sn.y,"Results",JOptionPane.PLAIN_MESSAGE);
}
catch(NullPointerException n){
JOptionPane.showMessageDialog(null,"你按了撤销按钮","错误",JOptionPane.ERROR_MESSAGE);
}
catch(NumberFormatException n){
JOptionPane.showMessageDialog(null,"请输入一个数字:","错误",
JOptionPane.ERROR_MESSAGE);
}
finally{System.exit(0);}
}
}



我想问一下这里发生异常后。弹出了对话框以后,我想返回到try里面去,重新执行代码
也就是说,如果用户如果没有输入内容或者内容输入有误,提示有,还是出现刚才输入的对话框
但是现在的代码执行了以后就直接结束了
...全文
89 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
joejoe1991 2008-04-25
  • 打赏
  • 举报
回复
我晕,引用错了。。。
8 楼兄弟,不好意思啊。。
joejoe1991 2008-04-25
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 javanewlife 的回复:]
引用 2 楼 Cspider588 的回复:
不推荐在这里使用异常来判断错误。

你可以写一个判断函数来判断用户没有输入或者输入有误。

如果你执意要用异常来判断的话,就要在会出错的地方try-catch,
然后回到外层代码中去。

try-catch在catch到异常的时候是不能回到捕获异常的代码段中去的。


支持,正解..
[/Quote]

别乱支持,楼主在finally里写了
System.exit(0);
你加循环也没有用,一发生异常JVM就退出了!

推荐楼主把那个finally去掉后,再加
while(true) {....}
javanewlife 2008-04-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 Cspider588 的回复:]
不推荐在这里使用异常来判断错误。

你可以写一个判断函数来判断用户没有输入或者输入有误。

如果你执意要用异常来判断的话,就要在会出错的地方try-catch,
然后回到外层代码中去。

try-catch在catch到异常的时候是不能回到捕获异常的代码段中去的。
[/Quote]

支持,正解..
huxinyu929 2008-04-25
  • 打赏
  • 举报
回复
写道一个while里

有异常,continue;

无异常,break;

KKK2007 2008-04-25
  • 打赏
  • 举报
回复
把try里的功能放到一个函数里,然后在try里执行这个函数,在finally里也执行这个函数
这样当try里发生错误,会跳到finally里重新执行这个函数
pcz607 2008-04-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 Cspider588 的回复:]
不推荐在这里使用异常来判断错误。

你可以写一个判断函数来判断用户没有输入或者输入有误。

如果你执意要用异常来判断的话,就要在会出错的地方try-catch,
然后回到外层代码中去。

try-catch在catch到异常的时候是不能回到捕获异常的代码段中去的。
[/Quote]
怎么判断用户的输入或输入有误?那是不是前面就应该先throws一下,我才学。不是太明白
pcz607 2008-04-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 KK3K2005 的回复:]
bool ok=true;
while(ok){
try{
....
ok=false;
}catch{
...
}
}
[/Quote]
还是不是太明白啊。。要是用户第一个数输入争取,第二个输入错误呢?
KK3K2005 2008-04-25
  • 打赏
  • 举报
回复
bool ok=true;
while(ok){
try{
....
ok=false;
}catch{
...
}
}
Cspider588 2008-04-25
  • 打赏
  • 举报
回复
不推荐在这里使用异常来判断错误。

你可以写一个判断函数来判断用户没有输入或者输入有误。

如果你执意要用异常来判断的话,就要在会出错的地方try-catch,
然后回到外层代码中去。

try-catch在catch到异常的时候是不能回到捕获异常的代码段中去的。
Inhibitory 2008-04-25
  • 打赏
  • 举报
回复
呵呵, Java中没有Goto语句, 还真不好做啊.
如果有Goto, 想跳到哪就跳到哪.

62,623

社区成员

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

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