Say mam następujący fragmentJak zwraca kod 500 statusu jeśli jest IOException podczas czytania
public boolean checkListing() {
try {
// open the users.txt file
BufferedReader br = new BufferedReader(new FileReader("users.txt"));
String line = null;
while ((line = br.readLine()) != null) {
String[] values = line.split(" ");
// only interested for duplicate usernames
if (username.equals(values[0])) {
return true;
}
}
br.close();
return false;
} catch (IOException e) {
e.printStackTrace();
// what to do here
}
}
Jak należy sobie radzić w błąd, jeśli wystąpi wyjątek? Chcę wiedzieć, że tak się stało i zwrócić użytkownikowi 500 kodu.
Czy powinienem rzucić i zrobić wyjątek i złapać go w drugiej grupie?
Czy istnieje bardziej elegancki sposób na uzyskanie opinii na ten temat?
1) wyrzuć wyjątek z początkowym wyjątkiem jako przyczynę; 2) użyj złożonego obiektu '{wynik, kod, przyczyna niepowodzenia}' do zwrócenia.Wolę 1), ponieważ jest zarówno elegancki, jak i użyteczny: z dowolnego miejsca wykonania można uzyskać pełny ślad niepowodzenia. –
@SashaSalauyou Dzięki za odpowiedź. Mam jednak problem ze zrozumieniem. Czy możesz dać mi źródło, aby przeczytać więcej o drugiej drodze? – Rentonie
BTW nie zapomnij zamknąć 'br' w' finally' bloku, w przeciwnym razie sekwencja awarii może spowodować wyciek zasobów. –