Dire che ho il seguente frammentoCome restituire un codice di stato 500 se c'è un IOException durante la lettura
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
}
}
Come devo gestire l'errore se si verifica un'eccezione? Voglio sapere che è successo e restituire un codice 500 all'utente.
Devo lanciare ed eccezione e prenderlo nell'altra classe?
C'è un modo più elegante per ottenere un feedback su di esso?
1) lanciare un'eccezione mantenendo l'eccezione iniziale come causa; 2) utilizzare l'oggetto composito '{result, code, failure reason}' per restituire.Preferisco 1) perché è allo stesso tempo elegante e utile: da qualsiasi punto di esecuzione è possibile ottenere una traccia completa del fallimento. –
@SashaSalauyou Grazie per la risposta. Ho un po 'di problemi a capire però. Puoi darmi una fonte per saperne di più sulla seconda strada? – Rentonie
BTW non dimenticare di chiudere 'br' nel blocco' finally', altrimenti la sequenza di errori può causare perdite di risorse. –