/* * Copyright (C) 2017-present ScyllaDB */ /* * SPDX-License-Identifier: LicenseRef-ScyllaDB-Source-Available-1.0 */ #pragma once #include #include "seastarx.hh" class marshal_exception : public std::exception { sstring _why; public: marshal_exception() = delete; marshal_exception(sstring why) : _why(sstring("marshaling error: ") + why) {} virtual const char* what() const noexcept override { return _why.c_str(); } }; // Speed up compilation of code using throw_with_backtrace by compiling it only once (in types.cc), and elsewhere say that // it is extern and not compile it again. namespace seastar { template [[noreturn]] void throw_with_backtrace(Args&&... args); extern template void throw_with_backtrace(sstring&&); }