\doxysection{exceptions\+\_\+composition.\+h}
\hypertarget{exceptions__composition_8h_source}{}\label{exceptions__composition_8h_source}\index{src/composition/include/fourdst/composition/exceptions/exceptions\_composition.h@{src/composition/include/fourdst/composition/exceptions/exceptions\_composition.h}}
\mbox{\hyperlink{exceptions__composition_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00001}00001\ \textcolor{preprocessor}{\#pragma\ once}}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00002}00002\ }
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00003}00003\ \textcolor{preprocessor}{\#include\ <exception>}}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00004}00004\ \textcolor{preprocessor}{\#include\ <string>}}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00005}00005\ }
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00006}\mbox{\hyperlink{namespacefourdst_1_1composition_1_1exceptions}{00006}}\ \textcolor{keyword}{namespace\ }\mbox{\hyperlink{namespacefourdst_1_1composition_1_1exceptions}{fourdst::composition::exceptions}}\ \{}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00014}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error}{00014}}\ \ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error_aef0cd13a4d1eb60b6d75ca5480e9146c}{CompositionError}}\ :\ \textcolor{keyword}{public}\ std::exception\ \{}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00015}00015\ \ \ \ \ \textcolor{keyword}{protected}:}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00019}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error_a4cd69d727a162f90045cd6d4aaf95440}{00019}}\ \ \ \ \ \ \ \ \ std::string\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error_a4cd69d727a162f90045cd6d4aaf95440}{m\_message}};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00020}00020\ \ \ \ \ \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00025}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error_aef0cd13a4d1eb60b6d75ca5480e9146c}{00025}}\ \ \ \ \ \ \ \ \ \textcolor{keyword}{explicit}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error_aef0cd13a4d1eb60b6d75ca5480e9146c}{CompositionError}}(\textcolor{keyword}{const}\ std::string\&\ message)}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00026}00026\ \ \ \ \ \ \ \ \ \ \ \ \ :\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error_a4cd69d727a162f90045cd6d4aaf95440}{m\_message}}(std::move(message))\ \{\}}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00027}00027\ }
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00032}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error_ae44ceddb19da8a8cda7ee150b6826d08}{00032}}\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}*\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error_ae44ceddb19da8a8cda7ee150b6826d08}{what}}()\ const\ noexcept\textcolor{keyword}{\ override}\{}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00033}00033\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error_a4cd69d727a162f90045cd6d4aaf95440}{m\_message}}.c\_str();}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00034}00034\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00035}00035\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00036}00036\ }
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00044}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_entry_error}{00044}}\ \ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_entry_error_af5ea3395201839d670bdcfc61b19abb1}{CompositionEntryError}}\ :\ \textcolor{keyword}{public}\ std::exception\ \{}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00045}00045\ \ \ \ \ \textcolor{keyword}{protected}:}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00049}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_entry_error_a41208f0821385ed6f168c66f5863a79d}{00049}}\ \ \ \ \ \ \ \ \ std::string\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_entry_error_a41208f0821385ed6f168c66f5863a79d}{m\_message}};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00050}00050\ \ \ \ \ \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00055}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_entry_error_af5ea3395201839d670bdcfc61b19abb1}{00055}}\ \ \ \ \ \ \ \ \ \textcolor{keyword}{explicit}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_entry_error_af5ea3395201839d670bdcfc61b19abb1}{CompositionEntryError}}(\textcolor{keyword}{const}\ std::string\&\ message)}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00056}00056\ \ \ \ \ \ \ \ \ \ \ \ \ :\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_entry_error_a41208f0821385ed6f168c66f5863a79d}{m\_message}}(std::move(message))\ \{\}}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00057}00057\ }
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00062}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_entry_error_aeba45905c6dc1a47ec1ad3f978f94e57}{00062}}\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}*\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_entry_error_aeba45905c6dc1a47ec1ad3f978f94e57}{what}}()\ const\ noexcept\textcolor{keyword}{\ override\ }\{}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00063}00063\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_entry_error_a41208f0821385ed6f168c66f5863a79d}{m\_message}}.c\_str();}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00064}00064\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00065}00065\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00066}00066\ }
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00074}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_not_finalized_error}{00074}}\ \ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_not_finalized_error}{CompositionNotFinalizedError}}\ final\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_not_finalized_error_aef0cd13a4d1eb60b6d75ca5480e9146c}{CompositionError}}\ \{}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00075}00075\ \ \ \ \ \ \ \ \ \textcolor{keyword}{using\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error_aef0cd13a4d1eb60b6d75ca5480e9146c}{CompositionError::CompositionError}};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00076}00076\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00077}00077\ }
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00082}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_invalid_composition_error}{00082}}\ \ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_invalid_composition_error}{InvalidCompositionError}}\ final\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_invalid_composition_error_aef0cd13a4d1eb60b6d75ca5480e9146c}{CompositionError}}\ \{}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00083}00083\ \ \ \ \ \ \ \ \ \textcolor{keyword}{using\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error_aef0cd13a4d1eb60b6d75ca5480e9146c}{CompositionError::CompositionError}};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00084}00084\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00085}00085\ }
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00093}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_invalid_mixing_mode}{00093}}\ \ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_invalid_mixing_mode}{InvalidMixingMode}}\ final\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_invalid_mixing_mode_aef0cd13a4d1eb60b6d75ca5480e9146c}{CompositionError}}\ \{}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00094}00094\ \ \ \ \ \ \ \ \ \textcolor{keyword}{using\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error_aef0cd13a4d1eb60b6d75ca5480e9146c}{CompositionError::CompositionError}};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00095}00095\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00096}00096\ }
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00101}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_invalid_symbol_error}{00101}}\ \ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_invalid_symbol_error}{InvalidSymbolError}}\ final\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_invalid_symbol_error_aef0cd13a4d1eb60b6d75ca5480e9146c}{CompositionError}}\ \{}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00102}00102\ \ \ \ \ \ \ \ \ \textcolor{keyword}{using\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error_aef0cd13a4d1eb60b6d75ca5480e9146c}{CompositionError::CompositionError}};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00103}00103\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00104}00104\ }
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00111}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_unregistered_symbol_error}{00111}}\ \ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_unregistered_symbol_error}{UnregisteredSymbolError}}\ final\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_unregistered_symbol_error_aef0cd13a4d1eb60b6d75ca5480e9146c}{CompositionError}}\ \{}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00112}00112\ \ \ \ \ \ \ \ \ \textcolor{keyword}{using\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error_aef0cd13a4d1eb60b6d75ca5480e9146c}{CompositionError::CompositionError}};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00113}00113\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00114}00114\ }
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00119}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_failed_to_finalize_composition_error}{00119}}\ \ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_failed_to_finalize_composition_error}{FailedToFinalizeCompositionError}}\ final\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_failed_to_finalize_composition_error_aef0cd13a4d1eb60b6d75ca5480e9146c}{CompositionError}}\ \{}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00120}00120\ \ \ \ \ \ \ \ \ \textcolor{keyword}{using\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error_aef0cd13a4d1eb60b6d75ca5480e9146c}{CompositionError::CompositionError}};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00121}00121\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00122}00122\ }
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00127}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_invalid_species_symbol_error}{00127}}\ \ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_invalid_species_symbol_error}{InvalidSpeciesSymbolError}}\ final\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_invalid_species_symbol_error_af5ea3395201839d670bdcfc61b19abb1}{CompositionEntryError}}\ \{}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00128}00128\ \ \ \ \ \ \ \ \ \textcolor{keyword}{using\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_entry_error_af5ea3395201839d670bdcfc61b19abb1}{CompositionEntryError::CompositionEntryError}};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00129}00129\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00130}00130\ }
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00135}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_entry_already_initialized_error}{00135}}\ \ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_entry_already_initialized_error}{EntryAlreadyInitializedError}}\ final\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_entry_already_initialized_error_af5ea3395201839d670bdcfc61b19abb1}{CompositionEntryError}}\ \{}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00136}00136\ \ \ \ \ \ \ \ \ \textcolor{keyword}{using\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_entry_error_af5ea3395201839d670bdcfc61b19abb1}{CompositionEntryError::CompositionEntryError}};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00137}00137\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00138}00138\ }
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00145}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_mode_error}{00145}}\ \ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_mode_error}{CompositionModeError}}\ final\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_mode_error_af5ea3395201839d670bdcfc61b19abb1}{CompositionEntryError}}\ \{}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00146}00146\ \ \ \ \ \ \ \ \ \textcolor{keyword}{using\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_entry_error_af5ea3395201839d670bdcfc61b19abb1}{CompositionEntryError::CompositionEntryError}};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00147}00147\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00148}00148\ }
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00149}00149\ \}}

\end{DoxyCode}
