TimeoutError
処理が時間内に終わらなかったときに発生するエラーです。ネットワーク通信でよく見られます。
原因
サーバーからの応答が遅い、ネットワークが不安定、相手先が処理できる状態にない、などが原因です。
エラーになるコード例
import socket
sock = socket.socket()
sock.settimeout(0.001)
sock.connect(('example.com', 80))修正版
import socket
try:
sock = socket.socket()
sock.settimeout(5)
sock.connect(('example.com', 80))
except TimeoutError:
print('接続がタイムアウトしました')よくある間違い
- タイムアウトの秒数を極端に短く設定してしまう
- 通信系のエラーをtry/exceptで想定せず、プログラム全体が落ちてしまう