예외가 발생해도 계속 진행하고, 마지막에 예외 발생하기
2024. 11. 6. 23:33ㆍJava
public class FileUtils {
public static List<Path> getFiles(String directory) {
try(Stream<Path> filePaths = Files.walk(Paths.get(directory))) {
return filePaths
.filter(Files::isRegularFile)
.collect(Collectors.toList());
} catch(IOException e) {
e.printStackTrace();
return List.of();
}
}
}
public class Main {
public static void main(String[] args) {
List<Path> files = FileUtils.getFiles("/attach/abc");
List<Exception> exList = new ArrayList<>();
List<String> messageList = new ArrayList<>();
for(Path path : files) {
try {
path.toFile().delete();
} catch(Exception e) {
e.printStackTrace();
exList.add(e);
messageList.add(e.getMessage());
}
}
if(exList.size() > 0) {
ExecutionException combinedException = new ExecutionException(messageList.toString(), null);
for(Exception e : exList) {
combinedException.addSuppressed(e);
}
throw combinedException;
}
}
}
'Java' 카테고리의 다른 글
List<Map<String, Object>>에서 특정 컬럼을 List로 뽑아내기 (0) | 2024.11.07 |
---|---|
List<String>에서 중복 데이터 처리 방법 (0) | 2024.11.07 |
Recursive 파일 정보 가져오기 (0) | 2024.11.06 |
String "2024-11-06 11:24:01 +0900"을 Date로 변환 (1) | 2024.11.06 |
Http 통신하기 Apache HttpClient 사용 (0) | 2024.10.19 |