Merge pull request #4331 from sfc-gh-anoyes/anoyes/std-exception
Log std::exception::what when creating an unknown_error
This commit is contained in:
commit
6b1b127ee1
|
@ -57,13 +57,25 @@ Error internal_error_impl( const char* file, int line ) {
|
||||||
return Error(error_code_internal_error);
|
return Error(error_code_internal_error);
|
||||||
}
|
}
|
||||||
|
|
||||||
Error::Error(int error_code)
|
Error::Error(int error_code) : error_code(error_code), flags(0) {
|
||||||
: error_code(error_code), flags(0)
|
|
||||||
{
|
|
||||||
if (TRACE_SAMPLE()) TraceEvent(SevSample, "ErrorCreated").detail("ErrorCode", error_code);
|
if (TRACE_SAMPLE()) TraceEvent(SevSample, "ErrorCreated").detail("ErrorCode", error_code);
|
||||||
//std::cout << "Error: " << error_code << std::endl;
|
// std::cout << "Error: " << error_code << std::endl;
|
||||||
if (error_code >= 3000 && error_code < 6000) {
|
if (error_code >= 3000 && error_code < 6000) {
|
||||||
TraceEvent(SevError, "SystemError").error(*this).backtrace();
|
{
|
||||||
|
TraceEvent te(SevError, "SystemError");
|
||||||
|
te.error(*this).backtrace();
|
||||||
|
if (error_code == error_code_unknown_error) {
|
||||||
|
auto exception = std::current_exception();
|
||||||
|
if (exception) {
|
||||||
|
try {
|
||||||
|
std::rethrow_exception(exception);
|
||||||
|
} catch (std::exception& e) {
|
||||||
|
te.detail("StdException", e.what());
|
||||||
|
} catch (...) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
if (g_crashOnError) {
|
if (g_crashOnError) {
|
||||||
flushOutputStreams();
|
flushOutputStreams();
|
||||||
flushTraceFileVoid();
|
flushTraceFileVoid();
|
||||||
|
|
Loading…
Reference in New Issue