summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1997-09-16 18:43:15 (GMT)
committerGuido van Rossum <guido@python.org>1997-09-16 18:43:15 (GMT)
commit0474832d9c6c708d8addd31a989dff772fdfefbf (patch)
treee6555ed7cb50edcbcb7191fcec122031bc02b898
parentc56ba3835056dda7b9ef0d406bda0532b52aab38 (diff)
downloadcpython-0474832d9c6c708d8addd31a989dff772fdfefbf.zip
cpython-0474832d9c6c708d8addd31a989dff772fdfefbf.tar.gz
cpython-0474832d9c6c708d8addd31a989dff772fdfefbf.tar.bz2
Introduce PyExc_Exception as the conceptual root class for all exceptions.
-rw-r--r--Include/pyerrors.h1
-rw-r--r--Python/bltinmodule.c7
2 files changed, 8 insertions, 0 deletions
diff --git a/Include/pyerrors.h b/Include/pyerrors.h
index ece1f3f..580f6d7 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 251108f..2c858ec 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");