New submission from Gregory P. Smith <g...@krypto.org>: This has been true since Python 1.x. getpass.getuser() is documented as "raising an exception" but doesn't specify what exception.
On Windows when the environment variables it looks at are not set, an ImportError (!) escapes due to "import pwd" failing. It could just a easily allow an exception from the following pwd.getpwuid(os.getuid())[0] call to escape on systems when pwd exists. None of these are actually helpful to the caller as they are left having to catch a bare Exception around a getpass.getuser() call to take another course of action. I filed this as I just saw someone suggesting code that specifically catches ImportError on getpass.getuser(). It is too late to change the exception type coming out in 2.7 or 3.6, but cleaning up this underspecified behavior to be a meaningful exception for 3.7 seems reasonable. ---------- components: Library (Lib) messages: 311349 nosy: gregory.p.smith priority: normal severity: normal stage: needs patch status: open title: getpass.getuser() raises an unspecified exceptions (ImportError, OSError, etc) type: behavior versions: Python 2.7, Python 3.7, Python 3.8 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue32731> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com