소스 검색

Catch socket.timeout, which is a separate exception class from TimeoutError before Python 3.10

master
JustAnotherArchivist 2 년 전
부모
커밋
0b34268210
1개의 변경된 파일3개의 추가작업 그리고 1개의 파일을 삭제
  1. +3
    -1
      ia-cdx-search

+ 3
- 1
ia-cdx-search 파일 보기

@@ -5,6 +5,7 @@ import http.client
import json
import re
import shlex
import socket
import sys
import time

@@ -35,7 +36,8 @@ def fetch(url, tries, connection):
print(f'Read {len(data)} bytes from {url}', file = sys.stderr)
o = json.loads(data)
break
except (RuntimeError, TimeoutError, http.client.HTTPException, json.JSONDecodeError) as e:
except (RuntimeError, TimeoutError, socket.timeout, http.client.HTTPException, json.JSONDecodeError) as e:
# socket.timeout is an alias of TimeoutError from Python 3.10 but still needs to be caught explicitly for older versions
print(f'Error retrieving {url}: {type(e).__module__}.{type(e).__name__} {e!s}', file = sys.stderr)
connection.close()
connection = make_connection()


불러오는 중...
취소
저장