0
import httplib
import re 

md5 = raw_input('Enter MD5: ') 

conn = httplib.HTTPConnection("www.md5.rednoize.com")
conn.request("GET", "?q="+ md5) 
try:
     response = conn.getresponse()
     data = response.read() 
     result = re.findall('<div id="result" >(.+?)</div', data)
     print result
except:
     print "couldnt find the hash"

raw_input()

おそらくコードを間違って実装していることはわかっていますが、これにはどの例外を使用すればよいでしょうか? ハッシュが見つからない場合は、例外を発生させて「ハッシュが見つかりませんでした」と出力します

4

2 に答える 2

2

re.findall は例外を発生させないため、おそらく結果を確認する方法ではありません。代わりに、次のように書くことができます

result = re.findall('<div id="result" >(.+?)</div', data)
if result:
    print result
else:
    print 'Could not find the hash'
于 2011-04-09T18:44:33.183 に答える
1

本当に例外が必要な場合は、定義する必要があります。

class MyError(Exception):
   def init(self, value):
       self.value = value
   def str(self):
       return repr(self.value)

try: response = conn.getresponse() data = response.read() result = re.findall('(.+?)</div', data) if not result: raise MyError("Could not find the hash") except MyError: raise

于 2011-04-09T19:04:12.267 に答える