ROOT
master
Reference Guide
Loading...
Searching...
No Matches
PyException.h
Go to the documentation of this file.
1
#ifndef CPYRT_PYEXCEPTION_H
2
#define CPYRT_PYEXCEPTION_H
3
4
//////////////////////////////////////////////////////////////////////////////
5
// //
6
// PyException //
7
// //
8
// Purpose: A C++ exception class for throwing python exceptions //
9
// through C++ code. //
10
// Created: Apr, 2004, Scott Snyder, from the version in D0's python_util. //
11
// //
12
// The situation is: //
13
// - We're calling C++ code from python. //
14
// - The C++ code can call back to python. //
15
// - What to do then if the python callback throws an exception? //
16
// //
17
// We need to get the control flow back to where cpyrt calls C++. //
18
// To do that we throw a TPyException. //
19
// We can then catch this exception when we do the C++ call. //
20
// //
21
// Note that we don't need to save any state in the exception -- it's //
22
// already in the python error info variables. //
23
// (??? Actually, if the program is multithreaded, this is dangerous //
24
// if the code has released and reacquired the lock along the call chain. //
25
// Punt on this for now, though.) //
26
// //
27
//////////////////////////////////////////////////////////////////////////////
28
29
// Standard
30
#include <exception>
31
#include <string>
32
33
// Bindings
34
#include "
cpyrt/CommonDefs.h
"
35
36
namespace
cppjit::cpyrt
{
37
38
class
CPYRT_CLASS_EXTERN
PyException
:
public
std::exception {
39
public
:
40
PyException
();
41
~PyException
()
noexcept
override
;
42
43
// give reason for raised exception
44
const
char
*
what
()
const
noexcept
override
;
45
46
// clear Python error, to allow full error handling C++ side
47
void
clear()
const
noexcept
;
48
49
private
:
50
std::string
fMsg
;
51
};
52
53
}
// namespace cppjit::cpyrt
54
55
#endif
// !CPYRT_PYEXCEPTION_H
CommonDefs.h
CPYRT_CLASS_EXTERN
#define CPYRT_CLASS_EXTERN
Definition
CommonDefs.h:29
cppjit::cpyrt::PyException
Definition
PyException.h:38
cppjit::cpyrt::PyException::fMsg
std::string fMsg
Definition
PyException.h:50
cppjit::cpyrt
Definition
API.cxx:34
what
static const char * what
Definition
stlLoader.cc:5
bindings
pyroot
cppjit
src
cpyrt
PyException.h
ROOTmaster - Reference Guide Generated on Tue Oct 6 2026 15:26:18 (GVA Time) using Doxygen 1.10.0