aboutsummaryrefslogtreecommitdiffstats
path: root/util/generic/yexception.cpp
diff options
context:
space:
mode:
authorfedorenko <fedorenko@yandex-team.ru>2022-02-23 05:47:23 +0300
committerfedorenko <fedorenko@yandex-team.ru>2022-02-23 05:47:23 +0300
commit1effc0f096ca382eba8967c92db95f5b51e6212c (patch)
tree411113210fa6e243844b507f54a44c08f576f811 /util/generic/yexception.cpp
parentc2f6fa508a2a2c3cc0530319977ec1d37166c0da (diff)
downloadydb-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.cpp30
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 (...) {
}