Ho il codice qui sotto.Come lanciare l'eccezione personalizzata controllata con espressione lambda java8?
private static void readStreamWithjava8() {
Stream<String> lines = null;
try {
lines = Files.lines(Paths.get("b.txt"), StandardCharsets.UTF_8);
lines.forEachOrdered(line -> process(line));
} catch (IOException e) {
e.printStackTrace();
} finally {
if (lines != null) {
lines.close();
}
}
}
private static void process(String line) throws MyException {
// Some process here throws the MyException
}
Ecco il mio metodo process(String line)
genera l'eccezione verificata e sto chiamando il metodo che dall'interno del lambda. A quel punto è necessario gettare il MyException
dal metodo readStreamWithjava8()
senza lanciare RuntimeException
.
Come posso fare questo con java8?
Nota: è possibile utilizzare try-with-resources con 'Files.lines()' – assylias
@assylias Puoi condividere qualche codice di esempio? – user3496599
'try (Stream lines = Files.lines (Paths.get (...))) {...}' e rimuovi il blocco finally. –
assylias