개체 모음에서 여러 단계를 수행하는 다른 클래스에서 호출하는 메서드가 있습니다. 특히 원본 위치에서 새 폴더로 파일 목록을 복사하고 있습니다. 파일을 복사 한 후에는 파일 그룹과 관련된 추가 데이터로 데이터베이스를 업데이트합니다. 파일 중 하나에 문제가있을 경우 copyFileToDestination (파일 C) 방법은 다양한하는 IOException을 던질 수 있지만, 하나의 예외가있는 경우에도,나중에 예외를 변수에 저장하여 나중에 처리 할 수 있습니까?
public void copyFilesAndStore(File[] files, DataObject additionalData){
for (File f in files){
copyFileToDestination(f);
}
updateDatabase(additionalData);
}
문제가 있습니다 : 그것은 다음과 같이 보입니다 파일을 복사하고 파일의 나머지 부분을 계속 복사하고 데이터베이스를 업데이트하기 위해 호출하고 싶습니다. 그래서 나는 같은 것을 수행 할 수 있습니다
public void copyFilesAndStore(File[] files, DataObject additionalData){
for (File f in files){
try {
copyFileToDestination(f);
} catch (IOException ex) {
log(ex);
}
}
updateDatabase(additionalData);
}
그러나) copyFilesAndStore를 (호출하는 클래스는 복사가 성공 아니었다면 알 필요가 있지만이 방법 내부의 모든 예외를 잡을 경우, 그것은 알 수 없습니다 그들에 대해. 아래처럼 뭔가를하는 것이 합리적입니까, 아니면 더 나은 해결책이없는 것입니까?
public void copyFilesAndStore(File[] files, DataObject additionalData){
IOException encounteredException = null;
for (File f in files){
try {
copyFileToDestination(f);
} catch (IOException ex) {
log(ex);
encounteredException = ex;
}
}
updateDatabase(additionalData);
if (encounteredException != null)
throw(encounteredException);
}
, 당신은 모든 컬렉션을 저장해야합니다. 마지막 하나. – bdares