diff options
author | fedorenko <fedorenko@yandex-team.ru> | 2022-02-23 05:47:23 +0300 |
---|---|---|
committer | fedorenko <fedorenko@yandex-team.ru> | 2022-02-23 05:47:23 +0300 |
commit | 1effc0f096ca382eba8967c92db95f5b51e6212c (patch) | |
tree | 411113210fa6e243844b507f54a44c08f576f811 /util/generic/yexception.cpp | |
parent | c2f6fa508a2a2c3cc0530319977ec1d37166c0da (diff) | |
download | ydb-1effc0f096ca382eba8967c92db95f5b51e6212c.tar.gz |
rollback r9158440 cause of failed RM tests
ref:7ea361b10868cc51450f6e43c8428e8447e6781d
Diffstat (limited to 'util/generic/yexception.cpp')
-rw-r--r-- | util/generic/yexception.cpp | 30 |
1 files changed, 6 insertions, 24 deletions
diff --git a/util/generic/yexception.cpp b/util/generic/yexception.cpp index 7bfed2878d0..26c75b5f51d 100644 --- a/util/generic/yexception.cpp +++ b/util/generic/yexception.cpp @@ -14,39 +14,21 @@ TString FormatExc(const std::exception& exception) { return TString::Join(TStringBuf("("), TypeName(exception), TStringBuf(") "), exception.what()); } -static TString BackTraceToString(const TBackTrace& backtrace) { - try { - Y_ENSURE(backtrace.size() > 0, "backtrace is empty"); - return backtrace.PrintToString(); - } catch (const std::exception& e) { - return TString::Join("Failed to print backtrace: ", FormatExc(e)); - } -} - TString CurrentExceptionMessage() { auto exceptionPtr = std::current_exception(); if (exceptionPtr) { try { std::rethrow_exception(exceptionPtr); } catch (const yexception& e) { - const TBackTrace* btPtr; -#ifdef _YNDX_LIBUNWIND_ENABLE_EXCEPTION_BACKTRACE - TBackTrace backtrace = TBackTrace::FromCurrentException(); - btPtr = &backtrace; -#else - btPtr = e.BackTrace(); - if (!btPtr) { - return FormatExc(e); + const TBackTrace* bt = e.BackTrace(); + + if (bt) { + return TString::Join(bt->PrintToString(), TStringBuf("\n"), FormatExc(e)); } -#endif - return TString::Join(BackTraceToString(*btPtr), TStringBuf("\n"), FormatExc(e)); + + return FormatExc(e); } catch (const std::exception& e) { -#ifdef _YNDX_LIBUNWIND_ENABLE_EXCEPTION_BACKTRACE - TBackTrace backtrace = TBackTrace::FromCurrentException(); - return TString::Join(BackTraceToString(backtrace), TStringBuf("\n"), FormatExc(e)); -#else return FormatExc(e); -#endif } catch (...) { } |