Java里try catch的简单用法
我有三个文本框textField要求其中输入的都是数字,如果不是数字,发现错误"invalidinputin1field"x是1,2,3。但是我想当1,2同时发生输入不是...
我有三个文本框textField 要求其中输入的都是数字,如果不是数字,发现错误"invalid input in 1 field" x是1,2,3。但是我想当1,2 同时发生输入不是数字的时候能够同时"invalid input in 1 field" "invalid input in 2 field",这该怎么错呢?
因为try catch的时候是顺序走的,如果try碰上了其中某一个有问题就会直接catch了,而不会同时显示。
请问该怎么做呢?
谢谢 展开
因为try catch的时候是顺序走的,如果try碰上了其中某一个有问题就会直接catch了,而不会同时显示。
请问该怎么做呢?
谢谢 展开
展开全部
Java里try catch的简单用法:
1、try+catch
程序的流程是:运行到try块中,如果有异常抛出,则转到catch块去处理。然后执行catch块后面的语句
扩展部分:
1、try+catch+finally
程序的流程是:运行到try块中,如果有异常抛出,则转到catch块,catch块执行完毕后,执行finally块的代码,再执行finally块后面的代码。
如果没有异常抛出,执行完try块,也要去执行finally块的代码。然后执行finally块后面的语句
2、try+finally
程序的流程是:运行到try块中,如果有异常抛出的话,程序转向执行finally块的代码。那末finally块后面的代码还会被执行吗?不会!因为没有处理异常,所以遇到异常后,执行完finally后,方法就已抛出异常的方式退出了。
1、try+catch
程序的流程是:运行到try块中,如果有异常抛出,则转到catch块去处理。然后执行catch块后面的语句
扩展部分:
1、try+catch+finally
程序的流程是:运行到try块中,如果有异常抛出,则转到catch块,catch块执行完毕后,执行finally块的代码,再执行finally块后面的代码。
如果没有异常抛出,执行完try块,也要去执行finally块的代码。然后执行finally块后面的语句
2、try+finally
程序的流程是:运行到try块中,如果有异常抛出的话,程序转向执行finally块的代码。那末finally块后面的代码还会被执行吗?不会!因为没有处理异常,所以遇到异常后,执行完finally后,方法就已抛出异常的方式退出了。
展开全部
如果是同一个异常,确实只能捕捉第一个。你可以写三个try..catch...语句解决这个问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
try{
//检查是否1 field
}catch(Exception e){
System.out.println("invalid input in 1 field");
}finally{
//finally下面的语句是无论上面是否发生异常,都会执行
try{
//检查是否2 field
}catch(Exception e1){
System.out.println("invalid input in 2 field");
}
}
//检查是否1 field
}catch(Exception e){
System.out.println("invalid input in 1 field");
}finally{
//finally下面的语句是无论上面是否发生异常,都会执行
try{
//检查是否2 field
}catch(Exception e1){
System.out.println("invalid input in 2 field");
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2017-09-13
展开全部
创建两个变量:
boolean hasError = false;
String errorMessage = "";
然后检测的代码放进3个try-catch:
try {
Integer.parseInt(textField1.getText());
} catch (NumberFormatException ex) {
hasError = true;
errorMessage += "invalid input in 1 field\n";
}
try {
Integer.parseInt(textField2.getText());
} catch (NumberFormatException ex) {
hasError = true;
errorMessage += "invalid input in 2 field\n";
}
try {
Integer.parseInt(textField3.getText());
} catch (NumberFormatException ex) {
hasError = true;
errorMessage += "invalid input in 3 field\n";
}
最后检测如果hasError == true,那么errorMessage里肯定有东西。
boolean hasError = false;
String errorMessage = "";
然后检测的代码放进3个try-catch:
try {
Integer.parseInt(textField1.getText());
} catch (NumberFormatException ex) {
hasError = true;
errorMessage += "invalid input in 1 field\n";
}
try {
Integer.parseInt(textField2.getText());
} catch (NumberFormatException ex) {
hasError = true;
errorMessage += "invalid input in 2 field\n";
}
try {
Integer.parseInt(textField3.getText());
} catch (NumberFormatException ex) {
hasError = true;
errorMessage += "invalid input in 3 field\n";
}
最后检测如果hasError == true,那么errorMessage里肯定有东西。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询