mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00
Added support for two new standard errors: EnvironmentError and
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.
This commit is contained in:
parent
62a21a2ebe
commit
d086a1a864
1 changed files with 16 additions and 5 deletions
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue