# 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

  property module

    Get the Module object this type belongs to

  property python_full_name
  property python_name
  set_module(module)

    Set the Module object this type belongs to

  write_convert_to_python(code_block, variable_name)