| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | #ifndef __CXX_Exception_h |
| | #define __CXX_Exception_h |
| |
|
| | #include "CXX/WrapPython.h" |
| | #include "CXX/Version.hxx" |
| | #include "CXX/Config.hxx" |
| | #include "CXX/IndirectPythonInterface.hxx" |
| |
|
| | #include <string> |
| | #include <iostream> |
| |
|
| | |
| | namespace Py |
| | { |
| | class ExtensionExceptionType; |
| |
|
| | class Object; |
| |
|
| | class PYCXX_EXPORT Exception |
| | { |
| | public: |
| | Exception( ExtensionExceptionType &exception, const std::string& reason ); |
| | Exception( ExtensionExceptionType &exception, Object &reason ); |
| |
|
| | explicit Exception () |
| | {} |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | Exception (PyObject* exception, const std::string& reason) |
| | { |
| | PyErr_SetString (exception, reason.c_str()); |
| | } |
| | |
| | Exception (PyObject* exception, Object &reason); |
| |
|
| | void clear() |
| | |
| | { |
| | PyErr_Clear(); |
| | } |
| | }; |
| | |
| | |
| | |
| | class PYCXX_EXPORT StandardError: public Exception |
| | { |
| | protected: |
| | explicit StandardError() |
| | {} |
| | }; |
| | |
| | class PYCXX_EXPORT LookupError: public StandardError |
| | { |
| | protected: |
| | explicit LookupError() |
| | {} |
| | }; |
| | |
| | class PYCXX_EXPORT ArithmeticError: public StandardError |
| | { |
| | protected: |
| | explicit ArithmeticError() |
| | {} |
| | }; |
| | |
| | class PYCXX_EXPORT EnvironmentError: public StandardError |
| | { |
| | protected: |
| | explicit EnvironmentError() |
| | {} |
| | }; |
| | |
| | |
| | |
| | class PYCXX_EXPORT TypeError: public StandardError |
| | { |
| | public: |
| | TypeError (const std::string& reason) |
| | : StandardError() |
| | { |
| | PyErr_SetString (Py::_Exc_TypeError(),reason.c_str()); |
| | } |
| | }; |
| | |
| | class PYCXX_EXPORT IndexError: public LookupError |
| | { |
| | public: |
| | IndexError (const std::string& reason) |
| | : LookupError() |
| | { |
| | PyErr_SetString (Py::_Exc_IndexError(), reason.c_str()); |
| | } |
| | }; |
| | |
| | class PYCXX_EXPORT AttributeError: public StandardError |
| | { |
| | public: |
| | AttributeError (const std::string& reason) |
| | : StandardError() |
| | { |
| | PyErr_SetString (Py::_Exc_AttributeError(), reason.c_str()); |
| | } |
| | }; |
| | |
| | class PYCXX_EXPORT NameError: public StandardError |
| | { |
| | public: |
| | NameError (const std::string& reason) |
| | : StandardError() |
| | { |
| | PyErr_SetString (Py::_Exc_NameError(), reason.c_str()); |
| | } |
| | }; |
| | |
| | class PYCXX_EXPORT RuntimeError: public StandardError |
| | { |
| | public: |
| | RuntimeError (const std::string& reason) |
| | : StandardError() |
| | { |
| | PyErr_SetString (Py::_Exc_RuntimeError(), reason.c_str()); |
| | } |
| | }; |
| | |
| | class NotImplementedError: public StandardError |
| | { |
| | public: |
| | NotImplementedError (const std::string& reason) |
| | : StandardError() |
| | { |
| | PyErr_SetString (Py::_Exc_NotImplementedError(), reason.c_str()); |
| | } |
| | }; |
| | |
| | class PYCXX_EXPORT SystemError: public StandardError |
| | { |
| | public: |
| | SystemError (const std::string& reason) |
| | : StandardError() |
| | { |
| | PyErr_SetString (Py::_Exc_SystemError(),reason.c_str()); |
| | } |
| | }; |
| | |
| | class PYCXX_EXPORT KeyError: public LookupError |
| | { |
| | public: |
| | KeyError (const std::string& reason) |
| | : LookupError() |
| | { |
| | PyErr_SetString (Py::_Exc_KeyError(),reason.c_str()); |
| | } |
| | }; |
| | |
| | |
| | class PYCXX_EXPORT ValueError: public StandardError |
| | { |
| | public: |
| | ValueError (const std::string& reason) |
| | : StandardError() |
| | { |
| | PyErr_SetString (Py::_Exc_ValueError(), reason.c_str()); |
| | } |
| | }; |
| | |
| | class PYCXX_EXPORT OverflowError: public ArithmeticError |
| | { |
| | public: |
| | OverflowError (const std::string& reason) |
| | : ArithmeticError() |
| | { |
| | PyErr_SetString (Py::_Exc_OverflowError(), reason.c_str()); |
| | } |
| | }; |
| | |
| | class PYCXX_EXPORT ZeroDivisionError: public ArithmeticError |
| | { |
| | public: |
| | ZeroDivisionError (const std::string& reason) |
| | : ArithmeticError() |
| | { |
| | PyErr_SetString (Py::_Exc_ZeroDivisionError(), reason.c_str()); |
| | } |
| | }; |
| | |
| | class PYCXX_EXPORT FloatingPointError: public ArithmeticError |
| | { |
| | public: |
| | FloatingPointError (const std::string& reason) |
| | : ArithmeticError() |
| | { |
| | PyErr_SetString (Py::_Exc_FloatingPointError(), reason.c_str()); |
| | } |
| | }; |
| | |
| | class PYCXX_EXPORT MemoryError: public StandardError |
| | { |
| | public: |
| | MemoryError (const std::string& reason) |
| | : StandardError() |
| | { |
| | PyErr_SetString (Py::_Exc_MemoryError(), reason.c_str()); |
| | } |
| | }; |
| | |
| | class PYCXX_EXPORT SystemExit: public StandardError |
| | { |
| | public: |
| | SystemExit (const std::string& reason) |
| | : StandardError() |
| | { |
| | PyErr_SetString (Py::_Exc_SystemExit(),reason.c_str()); |
| | } |
| | }; |
| |
|
| | } |
| |
|
| | #endif |
| |
|