# cppexception: translate C++ exceptions into Python

class `pybindgen.cppexception.``CppException`(name, parent=None, outer_class=None, custom_name=None, foreign_cpp_namespace=None, message_rvalue=None, is_standard_error=False)

  Bases: `object`

  Parameters:

  - name – exception class name
  - parent – optional parent class wrapper
  - custom_name – an alternative name to give to this exception class at python-side; if omitted, the name of the class in the python module will be the same name as the class in C++ (minus namespace).
  - is_standard_error – if True (default false), throws a standard Python Exception with the same name instead of creating anew exception. If custom_name is set, it uses the standard exception with that name instead.
  - foreign_cpp_namespace – if set, the class is assumed to belong to the given C++ namespace, regardless of the C++ namespace of the python module it will be added to. For instance, this can be useful to wrap std classes, like std::ofstream, without having to create an extra python submodule.
  - message_rvalue – if not None, this parameter is a string that contains an rvalue C expression that evaluates to the exception message. The Python % operator will be used to substitute %(EXC)s for the caught exception variable name. The rvalue expression must return a string of type “char const*”, a pointer owned by the exception instance.

  `generate`(code_sink, module, docstring=None)

    Generates the class to a code sink

  `generate_forward_declarations`(code_sink, dummy_module)
  `get_module`()

    Get the Module object this type belongs to

  `module`

    Get the Module object this type belongs to

  `python_full_name`
  `python_name`
  `set_module`(module)

    Set the Module object this type belongs to

  `write_convert_to_python`(code_block, variable_name)