Mercurial > cpython-lru_cache-weakref
diff Python/pythonrun.c @ 36751:8e04de2480e4 legacy-trunk
PEP 352 implementation. Creates a new base class, BaseException, which has an
added message attribute compared to the previous version of Exception. It is
also a new-style class, making all exceptions now new-style. KeyboardInterrupt
and SystemExit inherit from BaseException directly. String exceptions now
raise DeprecationWarning.
Applies patch 1104669, and closes bugs 1012952 and 518846.
| author | Brett Cannon <bcannon@gmail.com> |
|---|---|
| date | Wed, 01 Mar 2006 04:25:17 +0000 |
| parents | bbf16fd024df |
| children | d6c30ce3868b |
line wrap: on
line diff
--- a/Python/pythonrun.c Wed Mar 01 04:06:10 2006 +0000 +++ b/Python/pythonrun.c Wed Mar 01 04:25:17 2006 +0000 @@ -976,7 +976,7 @@ fflush(stdout); if (value == NULL || value == Py_None) goto done; - if (PyInstance_Check(value)) { + if (PyExceptionInstance_Check(value)) { /* The error code should be in the `code' attribute. */ PyObject *code = PyObject_GetAttrString(value, "code"); if (code) { @@ -1106,11 +1106,10 @@ if (err) { /* Don't do anything else */ } - else if (PyClass_Check(exception)) { - PyClassObject* exc = (PyClassObject*)exception; - PyObject* className = exc->cl_name; + else if (PyExceptionClass_Check(exception)) { + char* className = PyExceptionClass_Name(exception); PyObject* moduleName = - PyDict_GetItemString(exc->cl_dict, "__module__"); + PyObject_GetAttrString(exception, "__module__"); if (moduleName == NULL) err = PyFile_WriteString("<unknown>", f); @@ -1126,8 +1125,7 @@ if (className == NULL) err = PyFile_WriteString("<unknown>", f); else - err = PyFile_WriteObject(className, f, - Py_PRINT_RAW); + err = PyFile_WriteString(className, f); } } else
