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里面去,重新执行代码
也就是说,如果用户如果没有输入内容或者内容输入有误,提示有,还是出现刚才输入的对话框
但是现在的代码执行了以后就直接结束了

解决方案 »

  1.   

    呵呵, Java中没有Goto语句, 还真不好做啊.
    如果有Goto, 想跳到哪就跳到哪.
      

  2.   

    不推荐在这里使用异常来判断错误。你可以写一个判断函数来判断用户没有输入或者输入有误。如果你执意要用异常来判断的话,就要在会出错的地方try-catch,
    然后回到外层代码中去。try-catch在catch到异常的时候是不能回到捕获异常的代码段中去的。
      

  3.   

    bool ok=true;
    while(ok){
    try{
        ....
        ok=false;
    }catch{
        ...
    }
    }
      

  4.   

    怎么判断用户的输入或输入有误?那是不是前面就应该先throws一下,我才学。不是太明白
      

  5.   

    把try里的功能放到一个函数里,然后在try里执行这个函数,在finally里也执行这个函数
    这样当try里发生错误,会跳到finally里重新执行这个函数
      

  6.   

    写道一个while里有异常,continue;无异常,break;
      

  7.   


    别乱支持,楼主在finally里写了
    System.exit(0);你加循环也没有用,一发生异常JVM就退出了!推荐楼主把那个finally去掉后,再加
    while(true) {....}