[Patches] [ python-Patches-1668100 ] urllib2.urlopen() raises OSError instead of URLError

SourceForge.net noreply at sourceforge.net
Mon Feb 26 05:12:14 CET 2007


Patches item #1668100, was opened at 2007-02-24 16:20
Message generated for change (Comment added) made by jseutter
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=305470&aid=1668100&group_id=5470

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Modules
Group: Python 2.5
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Jerry Seutter (jseutter)
Assigned to: Nobody/Anonymous (nobody)
Summary: urllib2.urlopen() raises OSError instead of URLError

Initial Comment:
See bug 1591774.  

The base problem is that when passing a file:// url into urllib2.urlopen() for a file that doesn't exist, the os.stat() call fails with an OSError exception which is not caught.  The documentation for urllib2 states that urlopen() raises a URLError upon error.

This bug can also be triggered when fetching a http:// url.  A misconfigured webserver can cause urllib2.urlopen to use the FileHandler (see bug report).

This patch catches OSError in the FileHandler class and raises it as a URLError.  Unit test included.

----------------------------------------------------------------------

>Comment By: Jerry Seutter (jseutter)
Date: 2007-02-25 21:12

Message:
Logged In: YES 
user_id=1727609
Originator: YES

Sorry, I looked at that commented out section and didn't immediately see
what it was for, so ignored it.

I'm not sure what the correct behavior would be in this case.  Getting a
OSError from a http:// url is unsettling.

I guess that if I were using the library, I would only want to have to
catch one type of exception.  Having to catch both URLError and OSError is
inconvenient.  If I were looking for a file on disk I would use file(), so
the only time someone probably uses the file:// url syntax is when the end
user is entering the URL.  The end user wouldn't distinguish between the
two exception types in this case.



----------------------------------------------------------------------

Comment By: John J Lee (jjlee)
Date: 2007-02-25 10:01

Message:
Logged In: YES 
user_id=261020
Originator: NO

I recall that when I wrote the urllib2 tests there were a fair few cases
similar to this -- indeed, this particular one is already marked in the
tests with an "XXXX" in test_file().

What do other people think about these -- should they be fixed, or the
docs changed?


----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=305470&aid=1668100&group_id=5470


More information about the Patches mailing list