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里面去,重新执行代码
也就是说,如果用户如果没有输入内容或者内容输入有误,提示有,还是出现刚才输入的对话框
但是现在的代码执行了以后就直接结束了
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里面去,重新执行代码
也就是说,如果用户如果没有输入内容或者内容输入有误,提示有,还是出现刚才输入的对话框
但是现在的代码执行了以后就直接结束了
如果有Goto, 想跳到哪就跳到哪.
然后回到外层代码中去。try-catch在catch到异常的时候是不能回到捕获异常的代码段中去的。
while(ok){
try{
....
ok=false;
}catch{
...
}
}
这样当try里发生错误,会跳到finally里重新执行这个函数
别乱支持,楼主在finally里写了
System.exit(0);你加循环也没有用,一发生异常JVM就退出了!推荐楼主把那个finally去掉后,再加
while(true) {....}