MCPcopy Create free account
hub / github.com/ClickHouse/ClickHouse / getExceptionMessageAndPattern

Function getExceptionMessageAndPattern

src/Common/Exception.cpp:647–680  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

645}
646
647PreformattedMessage getExceptionMessageAndPattern(const Exception & e, bool with_stacktrace, bool check_embedded_stacktrace)
648{
649 WriteBufferFromOwnString stream;
650
651 try
652 {
653 std::string text = e.displayText();
654
655 bool has_embedded_stack_trace = false;
656 if (check_embedded_stacktrace)
657 {
658 auto embedded_stack_trace_pos = text.find("Stack trace");
659 has_embedded_stack_trace = embedded_stack_trace_pos != std::string::npos;
660 if (!with_stacktrace && has_embedded_stack_trace)
661 {
662 text.resize(embedded_stack_trace_pos);
663 Poco::trimRightInPlace(text);
664 }
665 }
666
667 stream << "Code: " << e.code() << ". " << text;
668
669 if (!text.empty() && text.back() != '.')
670 stream << '.';
671
672 stream << " (" << ErrorCodes::getName(e.code()) << ")";
673
674 if (with_stacktrace && !has_embedded_stack_trace)
675 stream << formatStackTraceSection(e.getStackTraceString());
676 }
677 catch (...) {} // NOLINT(bugprone-empty-catch) Ok: best-effort exception formatting, must not throw
678
679 return PreformattedMessage{stream.str(), e.tryGetMessageFormatString(), e.getMessageFormatStringArgs()};
680}
681
682std::string getExceptionMessage(std::exception_ptr e, bool with_stacktrace, bool check_embedded_stacktrace)
683{

Callers 9

processQueueEntryMethod · 0.85
fetchPartitionMethod · 0.85
executeStepMethod · 0.85
onExceptionMethod · 0.85
runImplMethod · 0.85
getExceptionMessageFunction · 0.85
executeQueryFunction · 0.85

Calls 12

formatStackTraceSectionFunction · 0.85
displayTextMethod · 0.80
getStackTraceStringMethod · 0.80
getNameFunction · 0.70
findMethod · 0.45
resizeMethod · 0.45
codeMethod · 0.45
emptyMethod · 0.45
backMethod · 0.45
strMethod · 0.45

Tested by

no test coverage detected