mirror of
https://github.com/python/cpython.git
synced 2025-10-21 14:12:27 +00:00
Added 'grok_environment_error()' function to deal with the various
forms that IOError and OSError can take (taken from core.py).
This commit is contained in:
parent
039accfb2c
commit
e905513be0
1 changed files with 20 additions and 0 deletions
|
@ -154,3 +154,23 @@ def subst_vars (str, local_vars):
|
|||
# subst_vars ()
|
||||
|
||||
|
||||
def grok_environment_error (exc, prefix="error: "):
|
||||
"""Generate a useful error message from an EnvironmentError (IOError or
|
||||
OSError) exception object. Handles Python 1.5.1 and 1.5.2 styles, and
|
||||
does what it can to deal with exception objects that don't have a
|
||||
filename (which happens when the error is due to a two-file operation,
|
||||
such as 'rename()' or 'link()'. Returns the error message as a string
|
||||
prefixed with 'prefix'.
|
||||
"""
|
||||
# check for Python 1.5.2-style {IO,OS}Error exception objects
|
||||
if hasattr (exc, 'filename') and hasattr (exc, 'strerror'):
|
||||
if exc.filename:
|
||||
error = prefix + "%s: %s" % (exc.filename, exc.strerror)
|
||||
else:
|
||||
# two-argument functions in posix module don't
|
||||
# include the filename in the exception object!
|
||||
error = prefix + "%s" % exc.strerror
|
||||
else:
|
||||
error = prefix + str(exc[-1])
|
||||
|
||||
return error
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue