Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
db74c8a3
Commit
db74c8a3
authored
Sep 30, 2008
by
Andrew M. Kuchling
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Markup fixes
parent
17ff29d0
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
11 additions
and
10 deletions
+11
-10
Doc/howto/urllib2.rst
Doc/howto/urllib2.rst
+11
-10
No files found.
Doc/howto/urllib2.rst
View file @
db74c8a3
...
@@ -182,11 +182,12 @@ which comes after we have a look at what happens when things go wrong.
...
@@ -182,11 +182,12 @@ which comes after we have a look at what happens when things go wrong.
Handling Exceptions
Handling Exceptions
===================
===================
*urlopen* raises ``URLError`` when it cannot handle a response (though as usual
*urlopen* raises :exc:`URLError` when it cannot handle a response (though as usual
with Python APIs, builtin exceptions such as ValueError, TypeError etc. may also
with Python APIs, builtin exceptions such as
:exc:`ValueError`, :exc:`TypeError` etc. may also
be raised).
be raised).
``HTTPError`` is the subclass of ``URLError`
` raised in the specific case of
:exc:`HTTPError` is the subclass of :exc:`URLError
` raised in the specific case of
HTTP URLs.
HTTP URLs.
URLError
URLError
...
@@ -215,12 +216,12 @@ the status code indicates that the server is unable to fulfil the request. The
...
@@ -215,12 +216,12 @@ the status code indicates that the server is unable to fulfil the request. The
default handlers will handle some of these responses for you (for example, if
default handlers will handle some of these responses for you (for example, if
the response is a "redirection" that requests the client fetch the document from
the response is a "redirection" that requests the client fetch the document from
a different URL, urllib2 will handle that for you). For those it can't handle,
a different URL, urllib2 will handle that for you). For those it can't handle,
urlopen will raise an
``HTTPError`
`. Typical errors include '404' (page not
urlopen will raise an
:exc:`HTTPError
`. Typical errors include '404' (page not
found), '403' (request forbidden), and '401' (authentication required).
found), '403' (request forbidden), and '401' (authentication required).
See section 10 of RFC 2616 for a reference on all the HTTP error codes.
See section 10 of RFC 2616 for a reference on all the HTTP error codes.
The
``HTTPError`
` instance raised will have an integer 'code' attribute, which
The
:exc:`HTTPError
` instance raised will have an integer 'code' attribute, which
corresponds to the error sent by the server.
corresponds to the error sent by the server.
Error Codes
Error Codes
...
@@ -303,7 +304,7 @@ dictionary is reproduced here for convenience ::
...
@@ -303,7 +304,7 @@ dictionary is reproduced here for convenience ::
}
}
When an error is raised the server responds by returning an HTTP error code
When an error is raised the server responds by returning an HTTP error code
*and* an error page. You can use the
``HTTPError`
` instance as a response on the
*and* an error page. You can use the
:exc:`HTTPError
` instance as a response on the
page returned. This means that as well as the code attribute, it also has read,
page returned. This means that as well as the code attribute, it also has read,
geturl, and info, methods. ::
geturl, and info, methods. ::
...
@@ -325,7 +326,7 @@ geturl, and info, methods. ::
...
@@ -325,7 +326,7 @@ geturl, and info, methods. ::
Wrapping it Up
Wrapping it Up
--------------
--------------
So if you want to be prepared for
``HTTPError`` *or* ``URLError`
` there are two
So if you want to be prepared for
:exc:`HTTPError` *or* :exc:`URLError
` there are two
basic approaches. I prefer the second approach.
basic approaches. I prefer the second approach.
Number 1
Number 1
...
@@ -351,7 +352,7 @@ Number 1
...
@@ -351,7 +352,7 @@ Number 1
.. note::
.. note::
The ``except HTTPError`` *must* come first, otherwise ``except URLError``
The ``except HTTPError`` *must* come first, otherwise ``except URLError``
will *also* catch an
``HTTPError`
`.
will *also* catch an
:exc:`HTTPError
`.
Number 2
Number 2
~~~~~~~~
~~~~~~~~
...
@@ -376,8 +377,8 @@ Number 2
...
@@ -376,8 +377,8 @@ Number 2
info and geturl
info and geturl
===============
===============
The response returned by urlopen (or the
``HTTPError`
` instance) has two useful
The response returned by urlopen (or the
:exc:`HTTPError
` instance) has two useful
methods
``info`` and ``geturl`
`.
methods
:meth:`info` and :meth:`geturl
`.
**geturl** - this returns the real URL of the page fetched. This is useful
**geturl** - this returns the real URL of the page fetched. This is useful
because ``urlopen`` (or the opener object used) may have followed a
because ``urlopen`` (or the opener object used) may have followed a
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment