OpenVDB: openvdb_ax/Exceptions.h Source File

OpenVDB 11.0.0

Loading...
Searching...
No Matches
Exceptions.h
Go to the documentation of this file.
1// Copyright Contributors to the OpenVDB Project
2// SPDX-License-Identifier: MPL-2.0
3
4/// @file openvdb_ax/Exceptions.h
5///
6/// @authors Nick Avramoussis, Richard Jones
7///
8/// @brief OpenVDB AX Exceptions
9///
10
11#ifndef OPENVDB_AX_EXCEPTIONS_HAS_BEEN_INCLUDED
12#define OPENVDB_AX_EXCEPTIONS_HAS_BEEN_INCLUDED
13
14#include <openvdb/version.h>
15#include <openvdb/Exceptions.h>
16
17#include <sstream>
18#include <string>
19
20namespace openvdb {
21 OPENVDB_USE_VERSION_NAMESPACE
22namespace OPENVDB_VERSION_NAME {
23
24#define OPENVDB_AX_EXCEPTION(_classname) \
25class _classname: public Exception \
26{ \
27public: \
28 _classname() noexcept: Exception( #_classname ) {} \
29 explicit _classname(const std::string& msg) noexcept: Exception( #_classname , &msg) {} \
30}
31
32 OPENVDB_AX_EXCEPTION(CLIError);
33
34// @note: Compilation errors due to invalid AX code should be collected using a separate logging system.
35// These errors are only thrown upon encountering fatal errors within the compiler/executables themselves
36 OPENVDB_AX_EXCEPTION(AXTokenError);
37 OPENVDB_AX_EXCEPTION(AXSyntaxError);
38 OPENVDB_AX_EXCEPTION(AXCodeGenError);
39 OPENVDB_AX_EXCEPTION(AXCompilerError);
40 OPENVDB_AX_EXCEPTION(AXExecutionError);
41
42#undef OPENVDB_AX_EXCEPTION
43
44} // namespace OPENVDB_VERSION_NAME
45} // namespace openvdb
46
47#endif // OPENVDB_AX_EXCEPTIONS_HAS_BEEN_INCLUDED
48
OPENVDB_AX_EXCEPTION
#define OPENVDB_AX_EXCEPTION(_classname)
Definition Exceptions.h:24
openvdb::v11_0::AXCodeGenError
Definition Exceptions.h:38
openvdb::v11_0::AXCompilerError
Definition Exceptions.h:39
openvdb::v11_0::AXExecutionError
Definition Exceptions.h:40
openvdb::v11_0::AXSyntaxError
Definition Exceptions.h:37
openvdb::v11_0::AXTokenError
Definition Exceptions.h:36
openvdb::v11_0::CLIError
Definition Exceptions.h:32
openvdb
Definition Exceptions.h:13
Exceptions.h
OPENVDB_VERSION_NAME
#define OPENVDB_VERSION_NAME
The version namespace name for this library version.
Definition version.h.in:121
OPENVDB_USE_VERSION_NAMESPACE
#define OPENVDB_USE_VERSION_NAMESPACE
Definition version.h.in:212