私はリストをたどってリストを作成する方法を持っています。その間、Result(ResultRassult)を呼び出してResultを呼び出してResultClassExceptionとしてラッピングするCustomExceptionをスローします。しかし、私は、未処理の例外と言うエラーが発生し続ける。Java 8 Streamで例外を処理する方法は?
マイコード:誰かが私が間違っているの何
private List<Result> getResultList(List<String> results) throws ResultClassException {
List<Result> resultList = new ArrayList<>();
results.forEach(
(resultName) -> {
if (!resultRepository.contains(resultName)) {
try {
final Result result = createResult(resultName);
resultList.add(result);
} catch (CustomException e) {
throw new ResultClassException("Error",e);
}
} else {
resultList.add(resultRepository.get(resultName));
log.info("Result {} already exists.", resultName);
}
}
);
return Collections.unmodifiableList(resultList);
}
を伝えることはできますか?
'ResultClassException'は' RuntimeException'のサブクラスでも、resultRepository.get(resultName)でもチェック例外をスローします。このラムダは 'Consumer'関数インタフェースに対応しないので、' forEach'のラムダ内からチェック例外を投げることはできません。 –
あなたのコードにはストリームが全く見当たりません。ちょうど 'forEach'です。通常の 'for'ループを使わないのはなぜですか? – shmosel