| Type | Use | Propagation |
|---|---|---|
Status | Default error return | RETURN_IF_ERROR |
Exception | Vectorized hot paths | RETURN_IF_CATCH_EXCEPTION |
Result<T> | Value-or-error return | DORIS_TRY |
Status return checked? Never static_cast<void>(...) to discardTHROW_IF_ERROR has a RETURN_IF_CATCH_EXCEPTION or RETURN_IF_ERROR_OR_CATCH_EXCEPTION above it?THROW_IF_ERROR kept out of Defer, destructors, and stack-unwinding paths? Use WARN_IF_ERROR thereWARN_IF_ERROR limited to cleanup/best-effort paths with non-empty message?DORIS_CHECK for invariants only, never speculative defensive checks?doris::Exception → std::exception → ...?Conversion warnings are raised to errors globally. Only compile_check_avoid_begin.h / compile_check_avoid_end.h remain for the small number of legacy code blocks that still need a local bypass.
int64_t→int32_t, size_t→int, uint64_t→int64_t)?compile_check_avoid_begin.h / compile_check_avoid_end.h instead of weakening warnings more broadly?