blob: 671ba206e5d2ba2fee20d661a17cdb1224d4d56c [file] [log] [blame]
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.9.8" xml:lang="en-US">
<compounddef id="exception_8h" kind="file" language="C++">
<compoundname>exception.h</compoundname>
<includes local="no">stdexcept</includes>
<includes refid="iceberg__export_8h" local="yes">iceberg/iceberg_export.h</includes>
<includedby refid="avro__stream__internal_8cc" local="yes">iceberg/avro/avro_stream_internal.cc</includedby>
<includedby refid="expressions_8cc" local="yes">iceberg/expression/expressions.cc</includedby>
<includedby refid="table__metadata_8cc" local="yes">iceberg/table_metadata.cc</includedby>
<includedby refid="type__test_8cc" local="yes">iceberg/test/type_test.cc</includedby>
<includedby refid="type_8cc" local="yes">iceberg/type.cc</includedby>
<includedby refid="config_8h" local="yes">iceberg/util/config.h</includedby>
<includedby refid="decimal_8cc" local="yes">iceberg/util/decimal.cc</includedby>
<includedby refid="macros_8h" local="yes">iceberg/util/macros.h</includedby>
<includedby refid="uuid_8cc" local="yes">iceberg/util/uuid.cc</includedby>
<incdepgraph>
<node id="1">
<label>iceberg/exception.h</label>
<link refid="exception_8h"/>
<childnode refid="2" relation="include">
</childnode>
<childnode refid="3" relation="include">
</childnode>
</node>
<node id="3">
<label>iceberg/iceberg_export.h</label>
<link refid="iceberg__export_8h_source"/>
</node>
<node id="2">
<label>stdexcept</label>
</node>
</incdepgraph>
<invincdepgraph>
<node id="69">
<label>iceberg/avro/avro_data_util_internal.h</label>
<link refid="avro__data__util__internal_8h_source"/>
</node>
<node id="49">
<label>iceberg/avro/avro_direct_decoder_internal.h</label>
<link refid="avro__direct__decoder__internal_8h_source"/>
</node>
<node id="6">
<label>iceberg/avro/avro_reader.h</label>
<link refid="avro__reader_8h_source"/>
</node>
<node id="51">
<label>iceberg/avro/avro_schema_util_internal.h</label>
<link refid="avro__schema__util__internal_8h_source"/>
</node>
<node id="10">
<label>iceberg/avro/avro_writer.h</label>
<link refid="avro__writer_8h_source"/>
</node>
<node id="3">
<label>iceberg/catalog/rest/catalog_properties.h</label>
<link refid="catalog__properties_8h"/>
<childnode refid="4" relation="include">
</childnode>
</node>
<node id="30">
<label>iceberg/catalog/rest/json_serde_internal.h</label>
<link refid="catalog_2rest_2json__serde__internal_8h"/>
</node>
<node id="4">
<label>iceberg/catalog/rest/rest_catalog.h</label>
<link refid="rest__catalog_8h"/>
</node>
<node id="29">
<label>iceberg/catalog/rest/types.h</label>
<link refid="types_8h"/>
<childnode refid="30" relation="include">
</childnode>
</node>
<node id="59">
<label>iceberg/data/data_writer.h</label>
<link refid="data__writer_8h"/>
</node>
<node id="60">
<label>iceberg/data/equality_delete_writer.h</label>
<link refid="equality__delete__writer_8h"/>
</node>
<node id="61">
<label>iceberg/data/position_delete_writer.h</label>
<link refid="position__delete__writer_8h"/>
</node>
<node id="55">
<label>iceberg/delete_file_index.h</label>
<link refid="delete__file__index_8h"/>
<childnode refid="20" relation="include">
</childnode>
</node>
<node id="1">
<label>iceberg/exception.h</label>
<link refid="exception_8h"/>
<childnode refid="2" relation="include">
</childnode>
<childnode refid="27" relation="include">
</childnode>
<childnode refid="28" relation="include">
</childnode>
</node>
<node id="32">
<label>iceberg/expression/aggregate.h</label>
<link refid="aggregate_8h"/>
<childnode refid="33" relation="include">
</childnode>
<childnode refid="36" relation="include">
</childnode>
</node>
<node id="34">
<label>iceberg/expression/binder.h</label>
<link refid="binder_8h"/>
</node>
<node id="31">
<label>iceberg/expression/expression.h</label>
<link refid="expression_8h"/>
<childnode refid="32" relation="include">
</childnode>
<childnode refid="33" relation="include">
</childnode>
<childnode refid="37" relation="include">
</childnode>
<childnode refid="38" relation="include">
</childnode>
<childnode refid="39" relation="include">
</childnode>
<childnode refid="41" relation="include">
</childnode>
<childnode refid="42" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
</node>
<node id="33">
<label>iceberg/expression/expression_visitor.h</label>
<link refid="expression__visitor_8h"/>
<childnode refid="34" relation="include">
</childnode>
<childnode refid="35" relation="include">
</childnode>
</node>
<node id="36">
<label>iceberg/expression/expressions.h</label>
<link refid="expressions_8h"/>
</node>
<node id="37">
<label>iceberg/expression/inclusive_metrics_evaluator.h</label>
<link refid="inclusive__metrics__evaluator_8h"/>
<childnode refid="7" relation="include">
</childnode>
</node>
<node id="38">
<label>iceberg/expression/json_serde_internal.h</label>
<link refid="expression_2json__serde__internal_8h"/>
</node>
<node id="54">
<label>iceberg/expression/literal.h</label>
<link refid="literal_8h_source"/>
<childnode refid="55" relation="include">
</childnode>
<childnode refid="33" relation="include">
</childnode>
<childnode refid="36" relation="include">
</childnode>
<childnode refid="39" relation="include">
</childnode>
<childnode refid="42" relation="include">
</childnode>
<childnode refid="56" relation="include">
</childnode>
<childnode refid="57" relation="include">
</childnode>
<childnode refid="58" relation="include">
</childnode>
<childnode refid="66" relation="include">
</childnode>
<childnode refid="68" relation="include">
</childnode>
<childnode refid="72" relation="include">
</childnode>
<childnode refid="74" relation="include">
</childnode>
<childnode refid="40" relation="include">
</childnode>
</node>
<node id="39">
<label>iceberg/expression/predicate.h</label>
<link refid="predicate_8h"/>
<childnode refid="33" relation="include">
</childnode>
<childnode refid="36" relation="include">
</childnode>
<childnode refid="40" relation="include">
</childnode>
</node>
<node id="35">
<label>iceberg/expression/rewrite_not.h</label>
<link refid="rewrite__not_8h"/>
</node>
<node id="41">
<label>iceberg/expression/strict_metrics_evaluator.h</label>
<link refid="strict__metrics__evaluator_8h"/>
</node>
<node id="42">
<label>iceberg/expression/term.h</label>
<link refid="term_8h"/>
<childnode refid="32" relation="include">
</childnode>
<childnode refid="33" relation="include">
</childnode>
<childnode refid="36" relation="include">
</childnode>
<childnode refid="39" relation="include">
</childnode>
<childnode refid="43" relation="include">
</childnode>
<childnode refid="40" relation="include">
</childnode>
</node>
<node id="5">
<label>iceberg/file_reader.h</label>
<link refid="file__reader_8h"/>
<childnode refid="6" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="8" relation="include">
</childnode>
</node>
<node id="9">
<label>iceberg/file_writer.h</label>
<link refid="file__writer_8h"/>
<childnode refid="10" relation="include">
</childnode>
<childnode refid="11" relation="include">
</childnode>
<childnode refid="13" relation="include">
</childnode>
</node>
<node id="16">
<label>iceberg/json_serde_internal.h</label>
<link refid="json__serde__internal_8h_source"/>
<childnode refid="17" relation="include">
</childnode>
</node>
<node id="62">
<label>iceberg/manifest/manifest_entry.h</label>
<link refid="manifest__entry_8h"/>
<childnode refid="55" relation="include">
</childnode>
<childnode refid="20" relation="include">
</childnode>
<childnode refid="12" relation="include">
</childnode>
<childnode refid="63" relation="include">
</childnode>
<childnode refid="64" relation="include">
</childnode>
</node>
<node id="20">
<label>iceberg/manifest/manifest_group.h</label>
<link refid="manifest__group_8h"/>
</node>
<node id="19">
<label>iceberg/manifest/manifest_list.h</label>
<link refid="manifest__list_8h"/>
<childnode refid="20" relation="include">
</childnode>
<childnode refid="11" relation="include">
</childnode>
<childnode refid="12" relation="include">
</childnode>
<childnode refid="21" relation="include">
</childnode>
<childnode refid="22" relation="include">
</childnode>
</node>
<node id="7">
<label>iceberg/manifest/manifest_reader_internal.h</label>
<link refid="manifest__reader__internal_8h"/>
</node>
<node id="11">
<label>iceberg/manifest/manifest_writer.h</label>
<link refid="manifest__writer_8h"/>
<childnode refid="12" relation="include">
</childnode>
</node>
<node id="12">
<label>iceberg/manifest/rolling_manifest_writer.h</label>
<link refid="rolling__manifest__writer_8h"/>
</node>
<node id="75">
<label>iceberg/metadata_columns.h</label>
<link refid="metadata__columns_8h"/>
</node>
<node id="56">
<label>iceberg/metrics.h</label>
<link refid="metrics_8h"/>
<childnode refid="9" relation="include">
</childnode>
<childnode refid="11" relation="include">
</childnode>
</node>
<node id="50">
<label>iceberg/name_mapping.h</label>
<link refid="name__mapping_8h_source"/>
<childnode refid="51" relation="include">
</childnode>
</node>
<node id="70">
<label>iceberg/parquet/parquet_data_util_internal.h</label>
<link refid="parquet__data__util__internal_8h_source"/>
</node>
<node id="8">
<label>iceberg/parquet/parquet_reader.h</label>
<link refid="parquet__reader_8h_source"/>
</node>
<node id="52">
<label>iceberg/parquet/parquet_schema_util_internal.h</label>
<link refid="parquet__schema__util__internal_8h_source"/>
</node>
<node id="13">
<label>iceberg/parquet/parquet_writer.h</label>
<link refid="parquet__writer_8h_source"/>
</node>
<node id="47">
<label>iceberg/partition_spec.h</label>
<link refid="partition__spec_8h"/>
<childnode refid="19" relation="include">
</childnode>
</node>
<node id="57">
<label>iceberg/partition_summary_internal.h</label>
<link refid="partition__summary__internal_8h_source"/>
</node>
<node id="67">
<label>iceberg/row/arrow_array_wrapper.h</label>
<link refid="arrow__array__wrapper_8h"/>
</node>
<node id="21">
<label>iceberg/row/manifest_wrapper.h</label>
<link refid="manifest__wrapper_8h_source"/>
</node>
<node id="58">
<label>iceberg/row/partition_values.h</label>
<link refid="partition__values_8h"/>
<childnode refid="59" relation="include">
</childnode>
<childnode refid="60" relation="include">
</childnode>
<childnode refid="61" relation="include">
</childnode>
<childnode refid="62" relation="include">
</childnode>
<childnode refid="65" relation="include">
</childnode>
</node>
<node id="66">
<label>iceberg/row/struct_like.h</label>
<link refid="struct__like_8h"/>
<childnode refid="67" relation="include">
</childnode>
<childnode refid="21" relation="include">
</childnode>
<childnode refid="58" relation="include">
</childnode>
</node>
<node id="48">
<label>iceberg/schema.h</label>
<link refid="schema_8h"/>
<childnode refid="49" relation="include">
</childnode>
<childnode refid="29" relation="include">
</childnode>
<childnode refid="50" relation="include">
</childnode>
<childnode refid="52" relation="include">
</childnode>
</node>
<node id="68">
<label>iceberg/schema_util.h</label>
<link refid="schema__util_8h_source"/>
<childnode refid="69" relation="include">
</childnode>
<childnode refid="49" relation="include">
</childnode>
<childnode refid="51" relation="include">
</childnode>
<childnode refid="70" relation="include">
</childnode>
<childnode refid="52" relation="include">
</childnode>
<childnode refid="71" relation="include">
</childnode>
</node>
<node id="71">
<label>iceberg/schema_util_internal.h</label>
<link refid="schema__util__internal_8h_source"/>
</node>
<node id="22">
<label>iceberg/snapshot.h</label>
<link refid="snapshot_8h_source"/>
<childnode refid="23" relation="include">
</childnode>
<childnode refid="24" relation="include">
</childnode>
<childnode refid="18" relation="include">
</childnode>
<childnode refid="25" relation="include">
</childnode>
</node>
<node id="23">
<label>iceberg/table.h</label>
<link refid="table_8h_source"/>
<childnode refid="18" relation="include">
</childnode>
</node>
<node id="15">
<label>iceberg/table_metadata.h</label>
<link refid="table__metadata_8h"/>
<childnode refid="16" relation="include">
</childnode>
<childnode refid="19" relation="include">
</childnode>
<childnode refid="17" relation="include">
</childnode>
<childnode refid="18" relation="include">
</childnode>
</node>
<node id="14">
<label>iceberg/table_properties.h</label>
<link refid="table__properties_8h_source"/>
<childnode refid="15" relation="include">
</childnode>
</node>
<node id="24">
<label>iceberg/table_update.h</label>
<link refid="table__update_8h"/>
</node>
<node id="44">
<label>iceberg/test/matchers.h</label>
<link refid="matchers_8h_source"/>
<childnode refid="18" relation="include">
</childnode>
</node>
<node id="17">
<label>iceberg/test/test_resource.h</label>
<link refid="test__resource_8h_source"/>
<childnode refid="18" relation="include">
</childnode>
</node>
<node id="18">
<label>iceberg/test/update_test_base.h</label>
<link refid="update__test__base_8h_source"/>
</node>
<node id="72">
<label>iceberg/transform.h</label>
<link refid="transform_8h"/>
<childnode refid="73" relation="include">
</childnode>
<childnode refid="40" relation="include">
</childnode>
</node>
<node id="73">
<label>iceberg/transform_function.h</label>
<link refid="transform__function_8h"/>
<childnode refid="40" relation="include">
</childnode>
</node>
<node id="53">
<label>iceberg/type.h</label>
<link refid="type_8h"/>
<childnode refid="51" relation="include">
</childnode>
<childnode refid="54" relation="include">
</childnode>
<childnode refid="62" relation="include">
</childnode>
<childnode refid="19" relation="include">
</childnode>
<childnode refid="75" relation="include">
</childnode>
<childnode refid="48" relation="include">
</childnode>
<childnode refid="76" relation="include">
</childnode>
</node>
<node id="26">
<label>iceberg/update/fast_append.h</label>
<link refid="fast__append_8h"/>
</node>
<node id="25">
<label>iceberg/update/snapshot_update.h</label>
<link refid="snapshot__update_8h_source"/>
<childnode refid="26" relation="include">
</childnode>
</node>
<node id="43">
<label>iceberg/update/update_sort_order.h</label>
<link refid="update__sort__order_8h"/>
</node>
<node id="2">
<label>iceberg/util/config.h</label>
<link refid="config_8h_source"/>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="5" relation="include">
</childnode>
<childnode refid="9" relation="include">
</childnode>
<childnode refid="14" relation="include">
</childnode>
</node>
<node id="63">
<label>iceberg/util/content_file_util.h</label>
<link refid="content__file__util_8h"/>
</node>
<node id="74">
<label>iceberg/util/conversions.h</label>
<link refid="conversions_8h"/>
</node>
<node id="64">
<label>iceberg/util/data_file_set.h</label>
<link refid="data__file__set_8h"/>
<childnode refid="26" relation="include">
</childnode>
</node>
<node id="27">
<label>iceberg/util/decimal.cc</label>
<link refid="decimal_8cc"/>
</node>
<node id="45">
<label>iceberg/util/json_util_internal.h</label>
<link refid="json__util__internal_8h"/>
</node>
<node id="46">
<label>iceberg/util/lazy.h</label>
<link refid="lazy_8h"/>
<childnode refid="47" relation="include">
</childnode>
<childnode refid="48" relation="include">
</childnode>
<childnode refid="22" relation="include">
</childnode>
<childnode refid="15" relation="include">
</childnode>
<childnode refid="53" relation="include">
</childnode>
</node>
<node id="28">
<label>iceberg/util/macros.h</label>
<link refid="macros_8h_source"/>
<childnode refid="29" relation="include">
</childnode>
<childnode refid="31" relation="include">
</childnode>
<childnode refid="33" relation="include">
</childnode>
<childnode refid="36" relation="include">
</childnode>
<childnode refid="44" relation="include">
</childnode>
<childnode refid="2" relation="include">
</childnode>
<childnode refid="27" relation="include">
</childnode>
<childnode refid="45" relation="include">
</childnode>
<childnode refid="46" relation="include">
</childnode>
<childnode refid="40" relation="include">
</childnode>
</node>
<node id="65">
<label>iceberg/util/partition_value_util.h</label>
<link refid="partition__value__util_8h_source"/>
<childnode refid="55" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
</node>
<node id="40">
<label>iceberg/util/projection_util_internal.h</label>
<link refid="projection__util__internal_8h_source"/>
</node>
<node id="76">
<label>iceberg/util/visit_type.h</label>
<link refid="visit__type_8h"/>
</node>
</invincdepgraph>
<innerclass refid="classiceberg_1_1IcebergError" prot="public">iceberg::IcebergError</innerclass>
<innerclass refid="classiceberg_1_1ExpressionError" prot="public">iceberg::ExpressionError</innerclass>
<innernamespace refid="namespaceiceberg">iceberg</innernamespace>
<sectiondef kind="define">
<memberdef kind="define" id="exception_8h_1a0ed6cd21ec8a093927ad46552e19158e" prot="public" static="no">
<name>ICEBERG_CHECK_OR_DIE</name>
<param><defname>condition</defname></param>
<param><defname>...</defname></param>
<initializer> do { \
if (!(condition)) [[unlikely]] { \
throw <ref refid="classiceberg_1_1IcebergError" kindref="compound">iceberg::IcebergError</ref>(std::format(__VA_ARGS__)); \
} \
} while (0)</initializer>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="iceberg/exception.h" line="47" column="9" bodyfile="iceberg/exception.h" bodystart="47" bodyend="52"/>
</memberdef>
</sectiondef>
<briefdescription>
</briefdescription>
<detaileddescription>
<para>Common exception types for Iceberg. Note that this library primarily uses return values for error handling, not exceptions. Some operations, however, will throw exceptions in contexts where no other option is available (e.g. a constructor). In those cases, an exception type from here will be used. </para>
</detaileddescription>
<programlisting>
<codeline lineno="1"><highlight class="comment">/*</highlight></codeline>
<codeline lineno="2"><highlight class="comment"><sp/>*<sp/>Licensed<sp/>to<sp/>the<sp/>Apache<sp/>Software<sp/>Foundation<sp/>(ASF)<sp/>under<sp/>one</highlight></codeline>
<codeline lineno="3"><highlight class="comment"><sp/>*<sp/>or<sp/>more<sp/>contributor<sp/>license<sp/>agreements.<sp/><sp/>See<sp/>the<sp/>NOTICE<sp/>file</highlight></codeline>
<codeline lineno="4"><highlight class="comment"><sp/>*<sp/>distributed<sp/>with<sp/>this<sp/>work<sp/>for<sp/>additional<sp/>information</highlight></codeline>
<codeline lineno="5"><highlight class="comment"><sp/>*<sp/>regarding<sp/>copyright<sp/>ownership.<sp/><sp/>The<sp/>ASF<sp/>licenses<sp/>this<sp/>file</highlight></codeline>
<codeline lineno="6"><highlight class="comment"><sp/>*<sp/>to<sp/>you<sp/>under<sp/>the<sp/>Apache<sp/>License,<sp/>Version<sp/>2.0<sp/>(the</highlight></codeline>
<codeline lineno="7"><highlight class="comment"><sp/>*<sp/>&quot;License&quot;);<sp/>you<sp/>may<sp/>not<sp/>use<sp/>this<sp/>file<sp/>except<sp/>in<sp/>compliance</highlight></codeline>
<codeline lineno="8"><highlight class="comment"><sp/>*<sp/>with<sp/>the<sp/>License.<sp/><sp/>You<sp/>may<sp/>obtain<sp/>a<sp/>copy<sp/>of<sp/>the<sp/>License<sp/>at</highlight></codeline>
<codeline lineno="9"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="10"><highlight class="comment"><sp/>*<sp/><sp/><sp/>http://www.apache.org/licenses/LICENSE-2.0</highlight></codeline>
<codeline lineno="11"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="12"><highlight class="comment"><sp/>*<sp/>Unless<sp/>required<sp/>by<sp/>applicable<sp/>law<sp/>or<sp/>agreed<sp/>to<sp/>in<sp/>writing,</highlight></codeline>
<codeline lineno="13"><highlight class="comment"><sp/>*<sp/>software<sp/>distributed<sp/>under<sp/>the<sp/>License<sp/>is<sp/>distributed<sp/>on<sp/>an</highlight></codeline>
<codeline lineno="14"><highlight class="comment"><sp/>*<sp/>&quot;AS<sp/>IS&quot;<sp/>BASIS,<sp/>WITHOUT<sp/>WARRANTIES<sp/>OR<sp/>CONDITIONS<sp/>OF<sp/>ANY</highlight></codeline>
<codeline lineno="15"><highlight class="comment"><sp/>*<sp/>KIND,<sp/>either<sp/>express<sp/>or<sp/>implied.<sp/><sp/>See<sp/>the<sp/>License<sp/>for<sp/>the</highlight></codeline>
<codeline lineno="16"><highlight class="comment"><sp/>*<sp/>specific<sp/>language<sp/>governing<sp/>permissions<sp/>and<sp/>limitations</highlight></codeline>
<codeline lineno="17"><highlight class="comment"><sp/>*<sp/>under<sp/>the<sp/>License.</highlight></codeline>
<codeline lineno="18"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="19"><highlight class="normal"></highlight></codeline>
<codeline lineno="20"><highlight class="normal"></highlight><highlight class="preprocessor">#pragma<sp/>once</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="21"><highlight class="normal"></highlight></codeline>
<codeline lineno="28"><highlight class="normal"></highlight></codeline>
<codeline lineno="29"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;stdexcept&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="30"><highlight class="normal"></highlight></codeline>
<codeline lineno="31"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;iceberg/iceberg_export.h&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="32"><highlight class="normal"></highlight></codeline>
<codeline lineno="33"><highlight class="normal"></highlight><highlight class="keyword">namespace<sp/></highlight><highlight class="normal">iceberg<sp/>{</highlight></codeline>
<codeline lineno="34"><highlight class="normal"></highlight></codeline>
<codeline lineno="36" refid="classiceberg_1_1IcebergError" refkind="compound"><highlight class="keyword">class<sp/></highlight><highlight class="normal">ICEBERG_EXPORT<sp/><ref refid="classiceberg_1_1IcebergError" kindref="compound">IcebergError</ref><sp/>:<sp/></highlight><highlight class="keyword">public</highlight><highlight class="normal"><sp/>std::runtime_error<sp/>{</highlight></codeline>
<codeline lineno="37"><highlight class="normal"><sp/></highlight><highlight class="keyword">public</highlight><highlight class="normal">:</highlight></codeline>
<codeline lineno="38"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">explicit</highlight><highlight class="normal"><sp/><ref refid="classiceberg_1_1IcebergError" kindref="compound">IcebergError</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>std::string&amp;<sp/>what)<sp/>:<sp/>std::runtime_error(what)<sp/>{}</highlight></codeline>
<codeline lineno="39"><highlight class="normal">};</highlight></codeline>
<codeline lineno="40"><highlight class="normal"></highlight></codeline>
<codeline lineno="42" refid="classiceberg_1_1ExpressionError" refkind="compound"><highlight class="keyword">class<sp/></highlight><highlight class="normal">ICEBERG_EXPORT<sp/><ref refid="classiceberg_1_1ExpressionError" kindref="compound">ExpressionError</ref><sp/>:<sp/></highlight><highlight class="keyword">public</highlight><highlight class="normal"><sp/><ref refid="classiceberg_1_1IcebergError" kindref="compound">IcebergError</ref><sp/>{</highlight></codeline>
<codeline lineno="43"><highlight class="normal"><sp/></highlight><highlight class="keyword">public</highlight><highlight class="normal">:</highlight></codeline>
<codeline lineno="44"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">explicit</highlight><highlight class="normal"><sp/><ref refid="classiceberg_1_1ExpressionError" kindref="compound">ExpressionError</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>std::string&amp;<sp/>what)<sp/>:<sp/><ref refid="classiceberg_1_1IcebergError" kindref="compound">IcebergError</ref>(what)<sp/>{}</highlight></codeline>
<codeline lineno="45"><highlight class="normal">};</highlight></codeline>
<codeline lineno="46"><highlight class="normal"></highlight></codeline>
<codeline lineno="47"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>ICEBERG_CHECK_OR_DIE(condition,<sp/>...)<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>\</highlight></codeline>
<codeline lineno="48"><highlight class="preprocessor"><sp/><sp/>do<sp/>{<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>\</highlight></codeline>
<codeline lineno="49"><highlight class="preprocessor"><sp/><sp/><sp/><sp/>if<sp/>(!(condition))<sp/>[[unlikely]]<sp/>{<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>\</highlight></codeline>
<codeline lineno="50"><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/>throw<sp/>iceberg::IcebergError(std::format(__VA_ARGS__));<sp/>\</highlight></codeline>
<codeline lineno="51"><highlight class="preprocessor"><sp/><sp/><sp/><sp/>}<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>\</highlight></codeline>
<codeline lineno="52"><highlight class="preprocessor"><sp/><sp/>}<sp/>while<sp/>(0)</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="53"><highlight class="normal"></highlight></codeline>
<codeline lineno="54"><highlight class="normal">}<sp/><sp/></highlight><highlight class="comment">//<sp/>namespace<sp/>iceberg</highlight><highlight class="normal"></highlight></codeline>
</programlisting>
<location file="iceberg/exception.h"/>
</compounddef>
</doxygen>