У меня есть следующий код, и Eclipse сообщил в блоке catch, что EOFException никогда не генерируется в блоке try.
Я попытался поместить эти две строки:
String suit = null;
String rank = null;
в блоке try ошибка в блоке catch исчезла.
Я также попытался поместить эти две строки:
char s = suitString2Char(suit);
char r = rankString2Char(rank);
в блок try, ошибка в блоке catch исчезла.
Но когда я помещаю все тело кода в блок try, снова возникает та же ошибка.
public static Card read2(BufferedReader in) throws EOFException {
Scanner input = new Scanner(in);
String suit = null;
String rank = null;
try {
int i = 0;
while (input.hasNext()) {
suit = i == 0 ? input.next() : suit;
rank = i == 1 ? input.next() : rank;
i++;
}
input.close();
} catch (EOFException e) {
throw new EOFException();
}
char s = suitString2Char(suit);
char r = rankString2Char(rank);
if (isValidSuit(s)
&& isValidRank(r)) {
return new Card(s, r);
} else {
return null;
}
}