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后,方法就已抛出异常的方式退出了。
如果是同一个异常,确实只能捕捉第一个。你可以写三个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");
}
}
创建两个变量:
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里肯定有东西。