這個問題在這里已經有了答案: 我們什么時候需要在python中使用“try, except”?它類似于“如果,否則”嗎? (2 個回答) 要求用戶輸入,直到他們給出有效回應 (21 個回答) 20 小時前關閉。
我想連接兩臺電腦,但是當其中一臺電腦沒有打開時,我收到連接被拒絕的例外,因為另一臺電腦沒有打開,所以我想當這個例外發生時我只是重新執行這部分直到它成功,所以當另一臺電腦打開時。
這就是我所擁有的:
def main():
s = socket.socket()
host = "Alex-PC"
port = 8080
s.connect((host,port))
if traceback.format_exception(ConnectionRefusedError):
main()
我認為if宣告可能會起作用,但我不知道如何if為這個問題撰寫宣告。
uj5u.com熱心網友回復:
您可以在呼叫函式時使用此方法:
temp = 1
def main():
s = socket.socket()
host = "Alex-PC"
port = 8080
s.connect((host,port))
temp = 0
while(1):
if temp == 1:
try:
main()
except:
temp = 1
elif temp == 0: break
uj5u.com熱心網友回復:
當您想要處理例外(例如ConnectionRefusedError)時,您應該使用Try/Except子句。
這將嘗試執行 中的代碼try,如果失敗,它將執行except子句(如果引發的Exception與 上宣告的匹配except)
使用評論中的建議進行編輯:
在您的特定情況下,您可以執行以下操作:
import threading
import socket
t = 1
def connect(s, host, port):
try:
s.connect((host,port))
except:
print(f"Host {host} is not available. Retrying in {t} seconds...")
time.sleep(t)
t*=2
connect(s, host, port)
def main():
s = socket.socket()
host = "Alex-PC"
port = 8080
connect(s, host, port)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/390998.html
