1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
# mode: run
# tag: cpp, werror, no-cpp-locals
# ticket: 3065
# This is intentionally in a file on its own. The issue was that it failed to generate utility-code
# and so putting it with the other c++ exception checks wouldn't be a useful test
cdef extern from *:
"""
#include <stdexcept>
void cppf(int raiseCpp) {
if (raiseCpp) {
throw std::runtime_error("cpp");
} else {
PyErr_SetString(PyExc_RuntimeError, "py");
}
}
"""
void cppf(int) except+*
def callcppf(int raiseCpp):
"""
>>> callcppf(0)
py
>>> callcppf(1)
cpp
"""
try:
cppf(raiseCpp)
except RuntimeError as e:
print(e.args[0])
|