1 #ifndef Py_INTERNAL_PYERRORS_H
2 #define Py_INTERNAL_PYERRORS_H
3 #ifdef __cplusplus
4 extern "C" {
5 #endif
6
7 #ifndef Py_BUILD_CORE
8 # error "this header requires Py_BUILD_CORE define"
9 #endif
10
11
12 /* runtime lifecycle */
13
14 extern PyStatus _PyErr_InitTypes(PyInterpreterState *);
15 extern void _PyErr_FiniTypes(PyInterpreterState *);
16
17
18 /* other API */
19
20 static inline PyObject* _PyErr_Occurred(PyThreadState *tstate)
21 {
22 assert(tstate != NULL);
23 if (tstate->current_exception == NULL) {
24 return NULL;
25 }
26 return (PyObject *)Py_TYPE(tstate->current_exception);
27 }
28
29 static inline void _PyErr_ClearExcState(_PyErr_StackItem *exc_state)
30 {
31 Py_CLEAR(exc_state->exc_value);
32 }
33
34 PyAPI_FUNC(PyObject*) _PyErr_StackItemToExcInfoTuple(
35 _PyErr_StackItem *err_info);
36
37 PyAPI_FUNC(void) _PyErr_Fetch(
38 PyThreadState *tstate,
39 PyObject **type,
40 PyObject **value,
41 PyObject **traceback);
42
43 extern PyObject *
44 _PyErr_GetRaisedException(PyThreadState *tstate);
45
46 PyAPI_FUNC(int) _PyErr_ExceptionMatches(
47 PyThreadState *tstate,
48 PyObject *exc);
49
50 void
51 _PyErr_SetRaisedException(PyThreadState *tstate, PyObject *exc);
52
53 PyAPI_FUNC(void) _PyErr_Restore(
54 PyThreadState *tstate,
55 PyObject *type,
56 PyObject *value,
57 PyObject *traceback);
58
59 PyAPI_FUNC(void) _PyErr_SetObject(
60 PyThreadState *tstate,
61 PyObject *type,
62 PyObject *value);
63
64 PyAPI_FUNC(void) _PyErr_ChainStackItem(
65 _PyErr_StackItem *exc_info);
66
67 PyAPI_FUNC(void) _PyErr_Clear(PyThreadState *tstate);
68
69 PyAPI_FUNC(void) _PyErr_SetNone(PyThreadState *tstate, PyObject *exception);
70
71 PyAPI_FUNC(PyObject *) _PyErr_NoMemory(PyThreadState *tstate);
72
73 PyAPI_FUNC(void) _PyErr_SetString(
74 PyThreadState *tstate,
75 PyObject *exception,
76 const char *string);
77
78 PyAPI_FUNC(PyObject *) _PyErr_Format(
79 PyThreadState *tstate,
80 PyObject *exception,
81 const char *format,
82 ...);
83
84 PyAPI_FUNC(void) _PyErr_NormalizeException(
85 PyThreadState *tstate,
86 PyObject **exc,
87 PyObject **val,
88 PyObject **tb);
89
90 PyAPI_FUNC(PyObject *) _PyErr_FormatFromCauseTstate(
91 PyThreadState *tstate,
92 PyObject *exception,
93 const char *format,
94 ...);
95
96 PyAPI_FUNC(PyObject *) _PyExc_CreateExceptionGroup(
97 const char *msg,
98 PyObject *excs);
99
100 PyAPI_FUNC(PyObject *) _PyExc_PrepReraiseStar(
101 PyObject *orig,
102 PyObject *excs);
103
104 PyAPI_FUNC(int) _PyErr_CheckSignalsTstate(PyThreadState *tstate);
105
106 PyAPI_FUNC(void) _Py_DumpExtensionModules(int fd, PyInterpreterState *interp);
107
108 extern PyObject* _Py_Offer_Suggestions(PyObject* exception);
109 PyAPI_FUNC(Py_ssize_t) _Py_UTF8_Edit_Cost(PyObject *str_a, PyObject *str_b,
110 Py_ssize_t max_cost);
111
112 void _PyErr_FormatNote(const char *format, ...);
113
114 #ifdef __cplusplus
115 }
116 #endif
117 #endif /* !Py_INTERNAL_PYERRORS_H */