Bagaimana pula dengan mengurangkan butiran cuba-tangkap? Atau tampal kod anda untuk analisis Apa yang anda katakan tentang meneruskan pelaksanaan kod asal selepas pengecualian agak samar-samar.
【Edit】 Selepas membaca dua jawapan yang lain, pada asasnya ia adalah dua idea yang saya kemukakan dalam komen di bawah. Ia harus dikatakan bahawa idea semua orang pada dasarnya adalah sama. Ubah suai di sini dan berikan saya pelan kod:
# introduce a new function
# @return: succeed, new_ip
def exec(ip, url):
try:
# do what you want to do
return True, ip
except:
# change your id
return False, new_ip
# your original logics
urls = [url1, url2, ..., url10]
i = 0
ip = ip1
while i <= len(urls):
succeed, ip = exec(ip, urls[i])
if succeed:
i +=1
Saya baru sahaja menulis satu, yang menjana Access Token ialah satu-satunya Access Token dalam pangkalan data , tetapi fungsi yang menjana tidak dapat menjamin bahawa Access Token yang dijana setiap masa adalah. sama. Jadi saya menggunakan gelung Access Token yang sangat menjijikkan. Kira-kira seperti berikut: while
while True:
try:
access_token = make_token()
access_token.add_to_db
break
except IntegrityError as e:
if e.orig.args[0] == 1062:
# 这种情况下,发生了mysql 1062异常,说明数据库中有重复的access token,需要反复生成新的,直至不同
pass
else:
raise e
Tidak pandai, tetapi ia berkesan.
Atau beritahu saya tentang perniagaan anda, mungkin ia tidak begitu menjijikkan.
Teks asal soalan: Ini agak menyusahkan saya Sebagai contoh, saya perlu meminta 10 URL dalam urutan Jika URL kelima diputuskan, ralat akan dilaporkan, dan kemudian saya akan melakukannya laksanakan kod untuk menukar IP di bawah kecuali. Ia adalah mustahil untuk menulis seketika untuk setiap permintaan
Pelan saya:
def r(uri, data):
while True:
try:
res = requests(uri, data)
return res
except:
change_ip()
Penyelesaian ini sepatutnya boleh dilakukan untuk permintaan penyegerakan satu proses dan satu utas.
Bagaimana pula dengan mengurangkan butiran cuba-tangkap? Atau tampal kod anda untuk analisis Apa yang anda katakan tentang meneruskan pelaksanaan kod asal selepas pengecualian agak samar-samar.
【Edit】
Selepas membaca dua jawapan yang lain, pada asasnya ia adalah dua idea yang saya kemukakan dalam komen di bawah. Ia harus dikatakan bahawa idea semua orang pada dasarnya adalah sama. Ubah suai di sini dan berikan saya pelan kod:
Saya baru sahaja menulis satu, yang menjana
Tidak pandai, tetapi ia berkesan.Access Token
ialah satu-satunyaAccess Token
dalam pangkalan data , tetapi fungsi yang menjana tidak dapat menjamin bahawaAccess Token
yang dijana setiap masa adalah. sama. Jadi saya menggunakan gelungAccess Token
yang sangat menjijikkan. Kira-kira seperti berikut:while