Replace PrintException with PrintExceptionContinue + throw

Just a pet peeve.

(PrintException has exactly the same body as PrintExceptionContinue but
does a re-throw at the end. Move these re-throws to the call
site, this aids understanding what is going on as well as eliminates a
bit of code duplication in util.cpp)
This commit is contained in:
Wladimir J. van der Laan
2014-02-26 13:23:52 +01:00
parent 3480bf7c65
commit 44235713ed
3 changed files with 10 additions and 15 deletions

View File

@@ -172,7 +172,6 @@ static inline bool error(const char* format)
void LogException(std::exception* pex, const char* pszThread);
void PrintException(std::exception* pex, const char* pszThread);
void PrintExceptionContinue(std::exception* pex, const char* pszThread);
void ParseString(const std::string& str, char c, std::vector<std::string>& v);
std::string FormatMoney(int64_t n, bool fPlus=false);
@@ -566,10 +565,12 @@ template <typename Callable> void LoopForever(const char* name, Callable func,
throw;
}
catch (std::exception& e) {
PrintException(&e, name);
PrintExceptionContinue(&e, name);
throw;
}
catch (...) {
PrintException(NULL, name);
PrintExceptionContinue(NULL, name);
throw;
}
}
// .. and a wrapper that just calls func once
@@ -589,10 +590,12 @@ template <typename Callable> void TraceThread(const char* name, Callable func)
throw;
}
catch (std::exception& e) {
PrintException(&e, name);
PrintExceptionContinue(&e, name);
throw;
}
catch (...) {
PrintException(NULL, name);
PrintExceptionContinue(NULL, name);
throw;
}
}