在第一个代码(code1)中,findbugs发现了一个REC_catch_Exception警告,因为
try { ... } catch (Exception e)
不是一个好的风格。但是在第二个代码(code2)中,警告消失了。
为什么呢?唯一的区别是setMatrikelnummer
类型:Integer
与String
。
//code1: With REC_Catch_Exception
try {
// set student datas
currentStudent.setVorname(registration[0]);
currentStudent.setName(registration[1]);
currentStudent.setMatrikelnummer(Integer
.parseInt(registration[2]));
currentStudent.setEmail(registration[3]);
currentStudent.setAnrede(registration[4]);
currentStudent.setStudiengang(registration[5]);
DateFormat formatter = new SimpleDateFormat(
"EEE MMM dd hh:mm:ss z yyyy", Locale.UK);
Date registrationDate = formatter.parse(registration[6]);
currentRegistration.setRegistrationDate(registrationDate);
} catch (Exception E) {
throw new WrongFormatException(
"Die Textdateien befinden sich im falschen Format");
}
//code2: Without REC_Catch_Exception
try {
// set student datas
currentStudent.setVorname(registration[0]);
currentStudent.setName(registration[1]);
currentStudent.setMatrikelnummer(registration[2]);
currentStudent.setEmail(registration[3]);
currentStudent.setAnrede(registration[4]);
currentStudent.setStudiengang(registration[5]);
DateFormat formatter = new SimpleDateFormat(
"EEE MMM dd hh:mm:ss z yyyy", Locale.UK);
Date registrationDate = formatter.parse(registration[6]);
currentRegistration.setRegistrationDate(registrationDate);
} catch (Exception E) {
throw new WrongFormatException(
"Die Textdateien befinden sich im falschen Format");
}
答案 0 :(得分:0)
当try-catch块中有多个异常时,会触发REC_Catch_Exception。也许在第一个代码中,两个异常是可能的并且REC_Catch_Exception触发但在第二个代码中只有一个异常是可能的并且没有REC_Catch_Exception触发/