]> granicus.if.org Git - python/commitdiff
Added support for two new standard errors: EnvironmentError and
authorBarry Warsaw <barry@python.org>
Thu, 23 Jul 1998 15:59:57 +0000 (15:59 +0000)
committerBarry Warsaw <barry@python.org>
Thu, 23 Jul 1998 15:59:57 +0000 (15:59 +0000)
OSError.  The EnvironmentError serves primarily as the (common
implementation) base class for IOError and OSError.  OSError is used
by posixmodule.c

Also added tuple definition of EnvironmentError when using string
based exceptions.

Python/bltinmodule.c

index 63531db2ea6fdad47d4df53f04d15112d21047cf..f4575dc4e6bd329d66997a76c4ef0b0da42beebb 100644 (file)
@@ -1935,7 +1935,9 @@ PyObject *PyExc_AssertionError;
 PyObject *PyExc_AttributeError;
 PyObject *PyExc_EOFError;
 PyObject *PyExc_FloatingPointError;
+PyObject *PyExc_EnvironmentError;
 PyObject *PyExc_IOError;
+PyObject *PyExc_OSError;
 PyObject *PyExc_ImportError;
 PyObject *PyExc_IndexError;
 PyObject *PyExc_KeyError;
@@ -1968,7 +1970,9 @@ bltin_exc[] = {
        {"AttributeError",     &PyExc_AttributeError,     1},
        {"EOFError",           &PyExc_EOFError,           1},
        {"FloatingPointError", &PyExc_FloatingPointError, 1},
+       {"EnvironmentError",   &PyExc_EnvironmentError,   1},
        {"IOError",            &PyExc_IOError,            1},
+       {"OSError",            &PyExc_OSError,            1},
        {"ImportError",        &PyExc_ImportError,        1},
        {"IndexError",         &PyExc_IndexError,         1},
        {"KeyError",           &PyExc_KeyError,           1},
@@ -2078,11 +2082,11 @@ initerrors(dict)
                                newstdexception(dict, bltin_exc[i].name);
        }
 
-       /* This is kind of bogus because we special case the three new
-          exceptions to be nearly forward compatible.  But this means we
-          hard code knowledge about exceptions.py into C here.  I don't
-          have a better solution, though
-       */
+       /* This is kind of bogus because we special case the some of the
+        * new exceptions to be nearly forward compatible.  But this means
+        * we hard code knowledge about exceptions.py into C here.  I don't
+        * have a better solution, though.
+        */
        PyExc_LookupError = PyTuple_New(2);
        Py_INCREF(PyExc_IndexError);
        PyTuple_SET_ITEM(PyExc_LookupError, 0, PyExc_IndexError);
@@ -2099,6 +2103,13 @@ initerrors(dict)
        PyTuple_SET_ITEM(PyExc_ArithmeticError, 2, PyExc_FloatingPointError);
        PyDict_SetItemString(dict, "ArithmeticError", PyExc_ArithmeticError);
 
+       PyExc_EnvironmentError = PyTuple_New(2);
+       Py_INCREF(PyExc_IOError);
+       PyTuple_SET_ITEM(PyExc_EnvironmentError, 0, PyExc_IOError);
+       Py_INCREF(PyExc_OSError);
+       PyTuple_SET_ITEM(PyExc_EnvironmentError, 1, PyExc_OSError);
+       PyDict_SetItemString(dict, "EnvironmentError", PyExc_EnvironmentError);
+
        PyExc_StandardError = PyTuple_New(exccnt-2);
        for (i = 2; bltin_exc[i].name; i++) {
                PyObject *exc = *bltin_exc[i].exc;