diff options
author | robot-srch-releaser <[email protected]> | 2022-02-15 22:49:52 +0300 |
---|---|---|
committer | robot-srch-releaser <[email protected]> | 2022-02-15 22:49:52 +0300 |
commit | 0bd0e5d1ab192e2782657cb05a36637ccb42ed57 (patch) | |
tree | 15e8e16a221859e077bf9e61e16fa44ac6615cea /util/generic/yexception.cpp | |
parent | 5f04b971c47670f77cd2fee382ab624db7bd0a6e (diff) |
Rollback: r9145043
[diff-resolver:svkrasnov] Sandbox task: https://sandbox.yandex-team.ru/task/1216524490/view
Task author: omakovski@
Description: Revert 9145043
Note: mandatory check (NEED_CHECK) was skipped
ref:dbe6517dcb523875d1e5de010069988b428c98bb
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 (...) { } |