From 0474832d9c6c708d8addd31a989dff772fdfefbf Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Tue, 16 Sep 1997 18:43:15 +0000 Subject: [PATCH] Introduce PyExc_Exception as the conceptual root class for all exceptions. --- Include/pyerrors.h | 1 + Python/bltinmodule.c | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/Include/pyerrors.h b/Include/pyerrors.h index ece1f3fedb..580f6d7da9 100644 --- a/Include/pyerrors.h +++ b/Include/pyerrors.h @@ -53,6 +53,7 @@ void PyErr_NormalizeException Py_PROTO((PyObject**, PyObject**, PyObject**)); /* Predefined exceptions */ +extern DL_IMPORT(PyObject *) PyExc_Exception; extern DL_IMPORT(PyObject *) PyExc_StandardError; extern DL_IMPORT(PyObject *) PyExc_NumberError; extern DL_IMPORT(PyObject *) PyExc_LookupError; diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c index 251108ff49..2c858ec689 100644 --- a/Python/bltinmodule.c +++ b/Python/bltinmodule.c @@ -1724,6 +1724,7 @@ static PyMethodDef builtin_methods[] = { /* Predefined exceptions */ +PyObject *PyExc_Exception; PyObject *PyExc_StandardError; PyObject *PyExc_NumberError; PyObject *PyExc_LookupError; @@ -1757,6 +1758,7 @@ static struct int leaf_exc; } bltin_exc[] = { + {"Exception", &PyExc_Exception, 0}, {"StandardError", &PyExc_StandardError, 0}, {"NumberError", &PyExc_NumberError, 0}, {"LookupError", &PyExc_LookupError, 0}, @@ -1901,6 +1903,11 @@ initerrors(dict) PyTuple_SET_ITEM(PyExc_StandardError, i-1, exc); } PyDict_SetItemString(dict, "StandardError", PyExc_StandardError); + + /* Exception is treated differently; for now, it's == StandardError */ + PyExc_Exception = PyExc_StandardError; + Py_INCREF(PyExc_Exception); + PyDict_SetItemString(dict, "Exception", PyExc_Exception); if (PyErr_Occurred()) Py_FatalError("Could not initialize built-in string exceptions"); -- 2.40.0