2016-12-08 7 views
0

質問のタイトルはちょっと混乱しているかもしれませんが、私は実際にそれをどのように言いたいのか分かりません... 私は次のコードを見つけました。 urllib2ライブラリを利用してWebからのWebページを取得します。それはe.codeが404であることを起こればurlib2.URLErrorとその理由はPythonで

import urllib2 

def download(url): 
    try: 
     html = urllib2.urlopen(url).read() 
    except urllib2.URLError as e: 
     print 'Download error:', e.reason 
     html = None 
    return html 

はさてe.reasonは、単にそれは、このように私は本当にここe.reasonを使用してのポイントを理解していない、絶対にエラーを引き起こしたかについて何の情報を負いません意味空の文字列です。 代わりにeを印刷するほうが妥当と思われますが、単純にprint eに変更しても、それでもまだ厄介なものがあります:HTTP Error 404:とコロンが後に空文字列... それは私には見えます上記のコードは、例外処理の面では少し不器用です。そうですか?

+0

はい、単に 'print e'が良いでしょう。より一般的には、処理されていないようなので、例外を捕捉しないようにするのが普通です。正確に何が問題なのですか? – wim

+0

404は、要求されたリソースが見つからなかったことを意味します。さらなる詳細については、 'print e'よりも良いでしょう。 – ichbinblau

+0

@wimよくこのコードを本から取り出して、例外がそこで処理される方法にちょっと困惑していたので、おそらく私は何かが欠けていると思っていた。 – weeCoder

答えて

0

404コードを表示したい場合は、エラー自体(print e)またはコードと理由(「Download Error:」、e.code、e.reasonを印刷する)のいずれかを使用することができます。

+0

そうだと思いますが、メッセージがあれば空文字列を許可しないでください。私はそれが単なる常識だと思う。 – weeCoder

関連する問題