From 124a4e58c497f6bfdb2e26465b8b3940393a3b29 Mon Sep 17 00:00:00 2001
From: Georg Brandl <georg@python.org>
Date: Mon, 20 Feb 2006 21:26:18 +0000
Subject: [PATCH] Bug #947571: By default, urllib.urlopen() does not raise
 IOErrors on server error codes. Make this clear.

---
 Doc/lib/liburllib.tex | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/Doc/lib/liburllib.tex b/Doc/lib/liburllib.tex
index 5e488c4097..0a84c1adf8 100644
--- a/Doc/lib/liburllib.tex
+++ b/Doc/lib/liburllib.tex
@@ -23,7 +23,7 @@ Open a network object denoted by a URL for reading.  If the URL does
 not have a scheme identifier, or if it has \file{file:} as its scheme
 identifier, this opens a local file (without universal newlines);
 otherwise it opens a socket to a server somewhere on the network.  If
-the connection cannot be made, or if the server returns an error code,
+the connection cannot be made
 the \exception{IOError} exception is raised.  If all went well, a
 file-like object is returned.  This supports the following methods:
 \method{read()}, \method{readline()}, \method{readlines()}, \method{fileno()},
@@ -274,6 +274,9 @@ Additional keyword parameters, collected in \var{x509}, are used for
 authentication with the \file{https:} scheme.  The keywords
 \var{key_file} and \var{cert_file} are supported; both are needed to
 actually retrieve a resource at an \file{https:} URL.
+
+\class{URLopener} objects will raise an \exception{IOError} exception
+if the server returns an error code.
 \end{classdesc}
 
 \begin{classdesc}{FancyURLopener}{...}
@@ -285,6 +288,10 @@ response codes (authentication required), basic HTTP authentication is
 performed.  For the 30x response codes, recursion is bounded by the
 value of the \var{maxtries} attribute, which defaults to 10.
 
+For all other response codes, the method \method{http_error_default()}
+is called which you can override in subclasses to handle the error
+appropriately.
+
 \note{According to the letter of \rfc{2616}, 301 and 302 responses to
   POST requests must not be automatically redirected without
   confirmation by the user.  In reality, browsers do allow automatic
-- 
2.49.0