如果例外是超時錯誤,我想將“錯誤”設定為 False。我有點困惑 try except 流程在此處如何在 python 中作業(令人驚訝的是找不到任何檔案來澄清這一點 - 如果有人有關于如何執行塊的檔案,請隨時鏈接),例如多個例外塊是否為真,他們都執行了嗎?還是只是第一個?我認為以下不起作用,因為我們無權訪問 'r'
try:
r = request(
method="POST",
...
)
r.raise_for_status()
resp = r.json()
errored = False
except Exception as e:
resp = _parse_json(e)
errored = True
if r.Timeout:
errored = False
下面是我想要的效果,只是不確定它是否與 try/except 流程一樣作業
try:
r = request(
...
)
r.raise_for_status()
resp = r.json()
errored = False
except Exception as e:
resp = _parse_json(e)
errored = True
except r.Timeout:
errored = False
這是我第一次處理/發出帖子請求,所以請多多包涵!
uj5u.com熱心網友回復:
根據我的研究,在 python 中,除了匹配例外之外,流程落在第一個。在這種情況下,首先放置超時例外。
import socket
import logging
errored = False
hostname = '10.255.255.1'
port = 443
socket.setdefaulttimeout(0.1)
try:
sock = socket.create_connection((hostname, port))
except ZeroDivisionError:
print('must not enter here')
except socket.timeout as err:
print('timeout')
errored = False
except Exception as ex:
print('base exception')
errored = True
except:
print('unknown exception')
errored = True
else:
print('success')
finally:
print('This is always executed')
此代碼示例發出一個將超時的請求,將始終陷入
except socket.timeout as err:
然后在最后。您可以更改 except 的順序進行測驗。
這里有一個關于 trycatch 的鏈接。
希望這可以幫助
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/517456.html
