\hypertarget{_utils_2_exception_8h}{\section{Core/\-Utils/\-Exception.h File Reference}
\label{_utils_2_exception_8h}\index{Core/\-Utils/\-Exception.\-h@{Core/\-Utils/\-Exception.\-h}}
}
{\ttfamily \#include $<$stdexcept$>$}\\*
{\ttfamily \#include $<$boost/exception/all.\-hpp$>$}\\*
{\ttfamily \#include $<$boost/tuple/tuple.\-hpp$>$}\\*
{\ttfamily \#include $<$boost/numeric/interval.\-hpp$>$}\\*
{\ttfamily \#include $<$Core/\-Utils/share.\-h$>$}\\*
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{struct_s_c_i_run_1_1_core_1_1_exception_base}{Exception\-Base}
\item 
struct \hyperlink{struct_s_c_i_run_1_1_core_1_1_null_pointer_exception}{Null\-Pointer\-Exception}
\item 
struct \hyperlink{struct_s_c_i_run_1_1_core_1_1_out_of_range_exception}{Out\-Of\-Range\-Exception}
\item 
struct \hyperlink{struct_s_c_i_run_1_1_core_1_1_invalid_argument_exception}{Invalid\-Argument\-Exception}
\item 
struct \hyperlink{struct_s_c_i_run_1_1_core_1_1_dimension_mismatch}{Dimension\-Mismatch}
\item 
struct \hyperlink{struct_s_c_i_run_1_1_core_1_1_invalid_argument_value}{Invalid\-Argument\-Value}
\item 
struct \hyperlink{struct_s_c_i_run_1_1_core_1_1_not_implemented}{Not\-Implemented}
\item 
struct \hyperlink{struct_s_c_i_run_1_1_core_1_1_assertion_failed}{Assertion\-Failed}
\end{DoxyCompactItemize}
\subsection*{Namespaces}
\begin{DoxyCompactItemize}
\item 
\hyperlink{namespace_s_c_i_run}{S\-C\-I\-Run}
\begin{DoxyCompactList}\small\item\em S\-T\-L datatypes needed. \end{DoxyCompactList}\item 
\hyperlink{namespace_s_c_i_run_1_1_core}{S\-C\-I\-Run\-::\-Core}
\end{DoxyCompactItemize}
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \hyperlink{_utils_2_exception_8h_a126700d37119919b1e5bdf609fb1b6e2}{E\-N\-S\-U\-R\-E\-\_\-\-N\-O\-T\-\_\-\-N\-U\-L\-L}(var, message)~if (!(var)) B\-O\-O\-S\-T\-\_\-\-T\-H\-R\-O\-W\-\_\-\-E\-X\-C\-E\-P\-T\-I\-O\-N(\hyperlink{struct_s_c_i_run_1_1_core_1_1_null_pointer_exception}{S\-C\-I\-Run\-::\-Core\-::\-Null\-Pointer\-Exception}() $<$$<$ \hyperlink{namespace_s_c_i_run_1_1_core_ae4157118aad4ac6429b5a86009b2199a}{S\-C\-I\-Run\-::\-Core\-::\-Null\-Object\-Info}(message))
\item 
\#define \hyperlink{_utils_2_exception_8h_a6ebf6ddaf7a214b9b97c8ee75729830a}{T\-H\-R\-O\-W\-\_\-\-O\-U\-T\-\_\-\-O\-F\-\_\-\-R\-A\-N\-G\-E}(message)~B\-O\-O\-S\-T\-\_\-\-T\-H\-R\-O\-W\-\_\-\-E\-X\-C\-E\-P\-T\-I\-O\-N(\hyperlink{struct_s_c_i_run_1_1_core_1_1_out_of_range_exception}{S\-C\-I\-Run\-::\-Core\-::\-Out\-Of\-Range\-Exception}() $<$$<$ \hyperlink{namespace_s_c_i_run_1_1_core_aaf2933a5689a1039d3fe100409b8e28f}{S\-C\-I\-Run\-::\-Core\-::\-Error\-Message}(message))
\item 
\#define \hyperlink{_utils_2_exception_8h_a7234d2f322197fd7c2254118f664ba69}{T\-H\-R\-O\-W\-\_\-\-I\-N\-V\-A\-L\-I\-D\-\_\-\-A\-R\-G\-U\-M\-E\-N\-T}(message)~B\-O\-O\-S\-T\-\_\-\-T\-H\-R\-O\-W\-\_\-\-E\-X\-C\-E\-P\-T\-I\-O\-N(\hyperlink{struct_s_c_i_run_1_1_core_1_1_invalid_argument_exception}{S\-C\-I\-Run\-::\-Core\-::\-Invalid\-Argument\-Exception}() $<$$<$ \hyperlink{namespace_s_c_i_run_1_1_core_aaf2933a5689a1039d3fe100409b8e28f}{S\-C\-I\-Run\-::\-Core\-::\-Error\-Message}(message))
\item 
\#define \hyperlink{_utils_2_exception_8h_a594891cdb2446b1ae7df5594e3bb2fc6}{E\-N\-S\-U\-R\-E\-\_\-\-D\-I\-M\-E\-N\-S\-I\-O\-N\-S\-\_\-\-M\-A\-T\-C\-H}(var1, var2, message)
\item 
\#define \hyperlink{_utils_2_exception_8h_afed379b410f0df5f6db2f257379e5be2}{R\-E\-P\-O\-R\-T\-\_\-\-I\-N\-V\-A\-L\-I\-D\-\_\-\-A\-R\-G\-U\-M\-E\-N\-T\-\_\-\-V\-A\-L\-U\-E}(message)
\item 
\#define \hyperlink{_utils_2_exception_8h_a1403edd2ee9a6d4c91cba11b8c8eeae8}{R\-E\-P\-O\-R\-T\-\_\-\-N\-O\-T\-\_\-\-I\-M\-P\-L\-E\-M\-E\-N\-T\-E\-D}(message)
\item 
\#define \hyperlink{_utils_2_exception_8h_a4cdf6f312bd56ad0656e01d73e2c5442}{A\-S\-S\-E\-R\-T\-M\-S\-G}(condition, message)
\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef boost\-::error\-\_\-info\\*
$<$ struct tag\-\_\-error\-\_\-message, \\*
std\-::string $>$ \hyperlink{namespace_s_c_i_run_1_1_core_aaf2933a5689a1039d3fe100409b8e28f}{Error\-Message}
\item 
typedef boost\-::error\-\_\-info\\*
$<$ struct tag\-\_\-null\-\_\-object, \\*
std\-::string $>$ \hyperlink{namespace_s_c_i_run_1_1_core_ae4157118aad4ac6429b5a86009b2199a}{Null\-Object\-Info}
\item 
typedef boost\-::error\-\_\-info\\*
$<$ struct tag\-\_\-file\-\_\-not\-\_\-found, \\*
std\-::string $>$ \hyperlink{namespace_s_c_i_run_1_1_core_a65262e274fccd245f15b67432a742b1f}{File\-Not\-Found}
\item 
typedef boost\-::error\-\_\-info\\*
$<$ struct \\*
tag\-\_\-linear\-\_\-algebra\-\_\-error, \\*
std\-::string $>$ \hyperlink{namespace_s_c_i_run_1_1_core_a43b90265d8b12a714e448dadd0fdddc7}{Linear\-Algebra\-Error\-Message}
\item 
typedef boost\-::error\-\_\-info\\*
$<$ struct \\*
tag\-\_\-double\-\_\-out\-\_\-of\-\_\-range, \\*
boost\-::tuple$<$ std\-::string, \\*
double, \\*
boost\-::numeric\-::interval\\*
$<$ double $>$ $>$ $>$ \hyperlink{namespace_s_c_i_run_1_1_core_a035fabf854d9ce03fdb946bdbeb4a012}{Double\-Out\-Of\-Range\-Info}
\item 
typedef boost\-::error\-\_\-info\\*
$<$ struct tag\-\_\-int\-\_\-out\-\_\-of\-\_\-range, \\*
boost\-::tuple$<$ std\-::string, int, \\*
boost\-::numeric\-::interval$<$ int $>$ $>$ $>$ \hyperlink{namespace_s_c_i_run_1_1_core_a5fda86ab36a790e050e09b751de4443f}{Int\-Out\-Of\-Range\-Info}
\item 
typedef boost\-::error\-\_\-info\\*
$<$ struct \\*
tag\-\_\-dimension\-\_\-mismatch, \\*
std\-::string $>$ \hyperlink{namespace_s_c_i_run_1_1_core_a494872b1efe24bf61b870cce1881769a}{Dimension\-Mismatch\-Info}
\item 
typedef boost\-::error\-\_\-info\\*
$<$ struct \\*
tag\-\_\-invalid\-\_\-argument\-\_\-value, \\*
std\-::string $>$ \hyperlink{namespace_s_c_i_run_1_1_core_af561998254e3a4b26b70844258b24b07}{Invalid\-Argument\-Value\-Info}
\item 
typedef boost\-::error\-\_\-info\\*
$<$ struct tag\-\_\-not\-\_\-implemented, \\*
std\-::string $>$ \hyperlink{namespace_s_c_i_run_1_1_core_adfcfc66d9cb4c2c58ee11671b829b2aa}{Not\-Implemented\-Info}
\end{DoxyCompactItemize}


\subsection{Macro Definition Documentation}
\hypertarget{_utils_2_exception_8h_a4cdf6f312bd56ad0656e01d73e2c5442}{\index{Utils/\-Exception.\-h@{Utils/\-Exception.\-h}!A\-S\-S\-E\-R\-T\-M\-S\-G@{A\-S\-S\-E\-R\-T\-M\-S\-G}}
\index{A\-S\-S\-E\-R\-T\-M\-S\-G@{A\-S\-S\-E\-R\-T\-M\-S\-G}!Utils/Exception.h@{Utils/\-Exception.\-h}}
\subsubsection[{A\-S\-S\-E\-R\-T\-M\-S\-G}]{\setlength{\rightskip}{0pt plus 5cm}\#define A\-S\-S\-E\-R\-T\-M\-S\-G(
\begin{DoxyParamCaption}
\item[{}]{condition, }
\item[{}]{message}
\end{DoxyParamCaption}
)}}\label{_utils_2_exception_8h_a4cdf6f312bd56ad0656e01d73e2c5442}
{\bfseries Value\-:}
\begin{DoxyCode}
\textcolor{keywordflow}{if}(!(condition))\{ \(\backslash\)
    BOOST\_THROW\_EXCEPTION(\hyperlink{struct_s_c_i_run_1_1_core_1_1_assertion_failed}{SCIRun::Core::AssertionFailed}() << 
      \hyperlink{namespace_s_c_i_run_1_1_core_aaf2933a5689a1039d3fe100409b8e28f}{SCIRun::Core::ErrorMessage}(message)); \(\backslash\)
  \}
\end{DoxyCode}
\hypertarget{_utils_2_exception_8h_a594891cdb2446b1ae7df5594e3bb2fc6}{\index{Utils/\-Exception.\-h@{Utils/\-Exception.\-h}!E\-N\-S\-U\-R\-E\-\_\-\-D\-I\-M\-E\-N\-S\-I\-O\-N\-S\-\_\-\-M\-A\-T\-C\-H@{E\-N\-S\-U\-R\-E\-\_\-\-D\-I\-M\-E\-N\-S\-I\-O\-N\-S\-\_\-\-M\-A\-T\-C\-H}}
\index{E\-N\-S\-U\-R\-E\-\_\-\-D\-I\-M\-E\-N\-S\-I\-O\-N\-S\-\_\-\-M\-A\-T\-C\-H@{E\-N\-S\-U\-R\-E\-\_\-\-D\-I\-M\-E\-N\-S\-I\-O\-N\-S\-\_\-\-M\-A\-T\-C\-H}!Utils/Exception.h@{Utils/\-Exception.\-h}}
\subsubsection[{E\-N\-S\-U\-R\-E\-\_\-\-D\-I\-M\-E\-N\-S\-I\-O\-N\-S\-\_\-\-M\-A\-T\-C\-H}]{\setlength{\rightskip}{0pt plus 5cm}\#define E\-N\-S\-U\-R\-E\-\_\-\-D\-I\-M\-E\-N\-S\-I\-O\-N\-S\-\_\-\-M\-A\-T\-C\-H(
\begin{DoxyParamCaption}
\item[{}]{var1, }
\item[{}]{var2, }
\item[{}]{message}
\end{DoxyParamCaption}
)}}\label{_utils_2_exception_8h_a594891cdb2446b1ae7df5594e3bb2fc6}
{\bfseries Value\-:}
\begin{DoxyCode}
\textcolor{keywordflow}{if} (var1 != var2) \(\backslash\)
  BOOST\_THROW\_EXCEPTION(\hyperlink{struct_s_c_i_run_1_1_core_1_1_dimension_mismatch}{SCIRun::Core::DimensionMismatch}() << 
      \hyperlink{namespace_s_c_i_run_1_1_core_a494872b1efe24bf61b870cce1881769a}{SCIRun::Core::DimensionMismatchInfo}( \(\backslash\)
    SCIRun::Core::DimensionMismatchInfo::value\_type( \(\backslash\)
      std::string(message) )))
\end{DoxyCode}
\hypertarget{_utils_2_exception_8h_a126700d37119919b1e5bdf609fb1b6e2}{\index{Utils/\-Exception.\-h@{Utils/\-Exception.\-h}!E\-N\-S\-U\-R\-E\-\_\-\-N\-O\-T\-\_\-\-N\-U\-L\-L@{E\-N\-S\-U\-R\-E\-\_\-\-N\-O\-T\-\_\-\-N\-U\-L\-L}}
\index{E\-N\-S\-U\-R\-E\-\_\-\-N\-O\-T\-\_\-\-N\-U\-L\-L@{E\-N\-S\-U\-R\-E\-\_\-\-N\-O\-T\-\_\-\-N\-U\-L\-L}!Utils/Exception.h@{Utils/\-Exception.\-h}}
\subsubsection[{E\-N\-S\-U\-R\-E\-\_\-\-N\-O\-T\-\_\-\-N\-U\-L\-L}]{\setlength{\rightskip}{0pt plus 5cm}\#define E\-N\-S\-U\-R\-E\-\_\-\-N\-O\-T\-\_\-\-N\-U\-L\-L(
\begin{DoxyParamCaption}
\item[{}]{var, }
\item[{}]{message}
\end{DoxyParamCaption}
)~if (!(var)) B\-O\-O\-S\-T\-\_\-\-T\-H\-R\-O\-W\-\_\-\-E\-X\-C\-E\-P\-T\-I\-O\-N({\bf S\-C\-I\-Run\-::\-Core\-::\-Null\-Pointer\-Exception}() $<$$<$ {\bf S\-C\-I\-Run\-::\-Core\-::\-Null\-Object\-Info}(message))}}\label{_utils_2_exception_8h_a126700d37119919b1e5bdf609fb1b6e2}
\hypertarget{_utils_2_exception_8h_afed379b410f0df5f6db2f257379e5be2}{\index{Utils/\-Exception.\-h@{Utils/\-Exception.\-h}!R\-E\-P\-O\-R\-T\-\_\-\-I\-N\-V\-A\-L\-I\-D\-\_\-\-A\-R\-G\-U\-M\-E\-N\-T\-\_\-\-V\-A\-L\-U\-E@{R\-E\-P\-O\-R\-T\-\_\-\-I\-N\-V\-A\-L\-I\-D\-\_\-\-A\-R\-G\-U\-M\-E\-N\-T\-\_\-\-V\-A\-L\-U\-E}}
\index{R\-E\-P\-O\-R\-T\-\_\-\-I\-N\-V\-A\-L\-I\-D\-\_\-\-A\-R\-G\-U\-M\-E\-N\-T\-\_\-\-V\-A\-L\-U\-E@{R\-E\-P\-O\-R\-T\-\_\-\-I\-N\-V\-A\-L\-I\-D\-\_\-\-A\-R\-G\-U\-M\-E\-N\-T\-\_\-\-V\-A\-L\-U\-E}!Utils/Exception.h@{Utils/\-Exception.\-h}}
\subsubsection[{R\-E\-P\-O\-R\-T\-\_\-\-I\-N\-V\-A\-L\-I\-D\-\_\-\-A\-R\-G\-U\-M\-E\-N\-T\-\_\-\-V\-A\-L\-U\-E}]{\setlength{\rightskip}{0pt plus 5cm}\#define R\-E\-P\-O\-R\-T\-\_\-\-I\-N\-V\-A\-L\-I\-D\-\_\-\-A\-R\-G\-U\-M\-E\-N\-T\-\_\-\-V\-A\-L\-U\-E(
\begin{DoxyParamCaption}
\item[{}]{message}
\end{DoxyParamCaption}
)}}\label{_utils_2_exception_8h_afed379b410f0df5f6db2f257379e5be2}
{\bfseries Value\-:}
\begin{DoxyCode}
BOOST\_THROW\_EXCEPTION(\hyperlink{struct_s_c_i_run_1_1_core_1_1_invalid_argument_value}{SCIRun::Core::InvalidArgumentValue}() << 
      \hyperlink{namespace_s_c_i_run_1_1_core_af561998254e3a4b26b70844258b24b07}{SCIRun::Core::InvalidArgumentValueInfo}( \(\backslash\)
    SCIRun::Core::InvalidArgumentValueInfo::value\_type( \(\backslash\)
      std::string(message) )))
\end{DoxyCode}
\hypertarget{_utils_2_exception_8h_a1403edd2ee9a6d4c91cba11b8c8eeae8}{\index{Utils/\-Exception.\-h@{Utils/\-Exception.\-h}!R\-E\-P\-O\-R\-T\-\_\-\-N\-O\-T\-\_\-\-I\-M\-P\-L\-E\-M\-E\-N\-T\-E\-D@{R\-E\-P\-O\-R\-T\-\_\-\-N\-O\-T\-\_\-\-I\-M\-P\-L\-E\-M\-E\-N\-T\-E\-D}}
\index{R\-E\-P\-O\-R\-T\-\_\-\-N\-O\-T\-\_\-\-I\-M\-P\-L\-E\-M\-E\-N\-T\-E\-D@{R\-E\-P\-O\-R\-T\-\_\-\-N\-O\-T\-\_\-\-I\-M\-P\-L\-E\-M\-E\-N\-T\-E\-D}!Utils/Exception.h@{Utils/\-Exception.\-h}}
\subsubsection[{R\-E\-P\-O\-R\-T\-\_\-\-N\-O\-T\-\_\-\-I\-M\-P\-L\-E\-M\-E\-N\-T\-E\-D}]{\setlength{\rightskip}{0pt plus 5cm}\#define R\-E\-P\-O\-R\-T\-\_\-\-N\-O\-T\-\_\-\-I\-M\-P\-L\-E\-M\-E\-N\-T\-E\-D(
\begin{DoxyParamCaption}
\item[{}]{message}
\end{DoxyParamCaption}
)}}\label{_utils_2_exception_8h_a1403edd2ee9a6d4c91cba11b8c8eeae8}
{\bfseries Value\-:}
\begin{DoxyCode}
BOOST\_THROW\_EXCEPTION(\hyperlink{struct_s_c_i_run_1_1_core_1_1_not_implemented}{SCIRun::Core::NotImplemented}() << 
      \hyperlink{namespace_s_c_i_run_1_1_core_adfcfc66d9cb4c2c58ee11671b829b2aa}{SCIRun::Core::NotImplementedInfo}( \(\backslash\)
    SCIRun::Core::NotImplementedInfo::value\_type( \(\backslash\)
      std::string(message) )))
\end{DoxyCode}
\begin{DoxyRefDesc}{Todo}
\item[\hyperlink{todo__todo000324}{Todo}]should not need this in production code. \end{DoxyRefDesc}
\hypertarget{_utils_2_exception_8h_a7234d2f322197fd7c2254118f664ba69}{\index{Utils/\-Exception.\-h@{Utils/\-Exception.\-h}!T\-H\-R\-O\-W\-\_\-\-I\-N\-V\-A\-L\-I\-D\-\_\-\-A\-R\-G\-U\-M\-E\-N\-T@{T\-H\-R\-O\-W\-\_\-\-I\-N\-V\-A\-L\-I\-D\-\_\-\-A\-R\-G\-U\-M\-E\-N\-T}}
\index{T\-H\-R\-O\-W\-\_\-\-I\-N\-V\-A\-L\-I\-D\-\_\-\-A\-R\-G\-U\-M\-E\-N\-T@{T\-H\-R\-O\-W\-\_\-\-I\-N\-V\-A\-L\-I\-D\-\_\-\-A\-R\-G\-U\-M\-E\-N\-T}!Utils/Exception.h@{Utils/\-Exception.\-h}}
\subsubsection[{T\-H\-R\-O\-W\-\_\-\-I\-N\-V\-A\-L\-I\-D\-\_\-\-A\-R\-G\-U\-M\-E\-N\-T}]{\setlength{\rightskip}{0pt plus 5cm}\#define T\-H\-R\-O\-W\-\_\-\-I\-N\-V\-A\-L\-I\-D\-\_\-\-A\-R\-G\-U\-M\-E\-N\-T(
\begin{DoxyParamCaption}
\item[{}]{message}
\end{DoxyParamCaption}
)~B\-O\-O\-S\-T\-\_\-\-T\-H\-R\-O\-W\-\_\-\-E\-X\-C\-E\-P\-T\-I\-O\-N({\bf S\-C\-I\-Run\-::\-Core\-::\-Invalid\-Argument\-Exception}() $<$$<$ {\bf S\-C\-I\-Run\-::\-Core\-::\-Error\-Message}(message))}}\label{_utils_2_exception_8h_a7234d2f322197fd7c2254118f664ba69}
\hypertarget{_utils_2_exception_8h_a6ebf6ddaf7a214b9b97c8ee75729830a}{\index{Utils/\-Exception.\-h@{Utils/\-Exception.\-h}!T\-H\-R\-O\-W\-\_\-\-O\-U\-T\-\_\-\-O\-F\-\_\-\-R\-A\-N\-G\-E@{T\-H\-R\-O\-W\-\_\-\-O\-U\-T\-\_\-\-O\-F\-\_\-\-R\-A\-N\-G\-E}}
\index{T\-H\-R\-O\-W\-\_\-\-O\-U\-T\-\_\-\-O\-F\-\_\-\-R\-A\-N\-G\-E@{T\-H\-R\-O\-W\-\_\-\-O\-U\-T\-\_\-\-O\-F\-\_\-\-R\-A\-N\-G\-E}!Utils/Exception.h@{Utils/\-Exception.\-h}}
\subsubsection[{T\-H\-R\-O\-W\-\_\-\-O\-U\-T\-\_\-\-O\-F\-\_\-\-R\-A\-N\-G\-E}]{\setlength{\rightskip}{0pt plus 5cm}\#define T\-H\-R\-O\-W\-\_\-\-O\-U\-T\-\_\-\-O\-F\-\_\-\-R\-A\-N\-G\-E(
\begin{DoxyParamCaption}
\item[{}]{message}
\end{DoxyParamCaption}
)~B\-O\-O\-S\-T\-\_\-\-T\-H\-R\-O\-W\-\_\-\-E\-X\-C\-E\-P\-T\-I\-O\-N({\bf S\-C\-I\-Run\-::\-Core\-::\-Out\-Of\-Range\-Exception}() $<$$<$ {\bf S\-C\-I\-Run\-::\-Core\-::\-Error\-Message}(message))}}\label{_utils_2_exception_8h_a6ebf6ddaf7a214b9b97c8ee75729830a}
