1. ホーム
  2. python

[解決済み] Python で特定の HTTP エラーをキャッチするにはどうしたらいいですか?

2023-07-04 14:05:25

質問

私は

import urllib2
try:
   urllib2.urlopen("some url")
except urllib2.HTTPError:
   <whatever>

のように記述していますが、結局のところ、あらゆる種類のHTTPエラーをキャッチしています。指定したウェブページが存在しない場合(404?)だけキャッチしたいのです。

どのように解決するのですか?

Python 3

from urllib.error import HTTPError

Python 2

from urllib2 import HTTPError

キャッチするだけ HTTPError をキャッチし、それを処理し、もしそれが 404 エラーでないなら、単に raise を使って例外を発生させます。

を参照してください。 Pythonチュートリアル .

Python 2の完全な例です。

import urllib2
from urllib2 import HTTPError
try:
   urllib2.urlopen("some url")
except HTTPError as err:
   if err.code == 404:
       <whatever>
   else:
       raise