diff --git a/ChangeLog b/ChangeLog index 786a1765..c171d982 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-12-23 Tatsuhiro Tsujikawa + + Added try-catch block in the loop in showFiles() to continue the + operation even if the exception occurred in one file. + * src/main.cc (showFiles) + 2008-12-20 Tatsuhiro Tsujikawa Made messages in showFiles() translatable. diff --git a/src/main.cc b/src/main.cc index 9cec57aa..d4f4e64d 100644 --- a/src/main.cc +++ b/src/main.cc @@ -127,13 +127,17 @@ static void showFiles(const std::deque& uris, const Option* op) i != uris.end(); ++i) { printf(MSG_SHOW_FILES, (*i).c_str()); printf("\n"); - if(dt.guessTorrentFile(*i)) { - showTorrentFile(*i); - } else if(dt.guessMetalinkFile(*i)) { - showMetalinkFile(*i, op); - } else { - printf(MSG_NOT_TORRENT_METALINK); - printf("\n\n"); + try { + if(dt.guessTorrentFile(*i)) { + showTorrentFile(*i); + } else if(dt.guessMetalinkFile(*i)) { + showMetalinkFile(*i, op); + } else { + printf(MSG_NOT_TORRENT_METALINK); + printf("\n\n"); + } + } catch(RecoverableException& e) { + std::cout << e.stackTrace() << std::endl; } } }