Gostaria de exemplos práticos onde se faz necessário ou não o finally, pois ainda não estou seguro se entendi corretamente ou não.
Gostaria de exemplos práticos onde se faz necessário ou não o finally, pois ainda não estou seguro se entendi corretamente ou não.
Olá Jonathan, imagine um cenário onde você precise que algo seja executado independentemente se ocorrer algum erro durante o processo que que está inserido dentro do block try.
Ele é comumente utilizado para fechar algum recurso que foi aberto durante a execução de algum processo, evitando que um eventual erro desvie o fluxo da aplicação e o recurso permaneça aberto de forma desnecessária.
Veja o exemplo abaixo, o metodo converte um InputStream para String, durante o processo é encessário criar um objeto chamado BufferedReader e utilizo o block finally para encerrar o BufferedReader indepenentemente de qualquer expcetion que possa ocorrer durante o processo:
public static String getStringFromInputStream(InputStream is) {
BufferedReader br = null;
StringBuilder sb = new StringBuilder();
String line;
try {
br = new BufferedReader(new InputStreamReader(is));
while ((line = br.readLine()) != null) {
sb.append(line);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return sb.toString();
}