Exception urllib异常http.client.BadStatusLine
我一辈子都弄不明白为什么我不能抓住这个例外 看看这里 例外情况:Exception urllib异常http.client.BadStatusLine,exception,python-3.x,urllib,Exception,Python 3.x,Urllib,我一辈子都弄不明白为什么我不能抓住这个例外 看看这里 例外情况: Traceback (most recent call last): File "queue_cleaner_main.py", line 60, in <module> sys.exit(main()) File "queue_cleaner_main.py", line 57, in main team_names_to_contact = queue_cleaner_functions.g
Traceback (most recent call last):
File "queue_cleaner_main.py", line 60, in <module>
sys.exit(main())
File "queue_cleaner_main.py", line 57, in main
team_names_to_contact = queue_cleaner_functions.get_team_names(SERVICE_NOW_TEAM_NAME_URL, team[2])
File "D:\oppssup\old_job\queue_cleaner_functions.py", line 132, in get_team_names
response = urllib.request.urlopen(get_team_id_url + team_id)
File "C:\Python34\lib\urllib\request.py", line 153, in urlopen
return opener.open(url, data, timeout)
File "C:\Python34\lib\urllib\request.py", line 455, in open
response = self._open(req, data)
File "C:\Python34\lib\urllib\request.py", line 473, in _open
'_open', req)
File "C:\Python34\lib\urllib\request.py", line 433, in _call_chain
result = func(*args)
File "C:\Python34\lib\urllib\request.py", line 1202, in http_open
return self.do_open(http.client.HTTPConnection, req)
File "C:\Python34\lib\urllib\request.py", line 1177, in do_open
r = h.getresponse()
File "C:\Python34\lib\http\client.py", line 1172, in getresponse
response.begin()
File "C:\Python34\lib\http\client.py", line 351, in begin
version, status, reason = self._read_status()
File "C:\Python34\lib\http\client.py", line 321, in _read_status
raise BadStatusLine(line)
http.client.BadStatusLine: ''
例外情况:
Traceback (most recent call last):
File "queue_cleaner_main.py", line 60, in <module>
sys.exit(main())
File "queue_cleaner_main.py", line 57, in main
team_names_to_contact = queue_cleaner_functions.get_team_names(SERVICE_NOW_TEAM_NAME_URL, team[2])
File "D:\oppssup\old_job\queue_cleaner_functions.py", line 141, in get_team_names
r_json = json.loads(response.read().decode('utf8'))
UnboundLocalError: local variable 'response' referenced before assignment
回溯(最近一次呼叫最后一次):
文件“queue_cleaner_main.py”,第60行,在
sys.exit(main())
文件“queue_cleaner_main.py”,第57行,在main中
团队名称\u to\u contact=队列\u cleaner\u函数。获取团队名称(服务\u NOW\u团队名称\u URL,团队[2])
文件“D:\oppsup\old\u job\queue\u cleaner\u functions.py”,第141行,位于get\u团队名称中
r_json=json.load(response.read().decode('utf8'))
UnboundLocalError:赋值前引用的局部变量“response”
此http.client.BadStatusLine
是http.client.HTTPException
的子类。我认为如果你这样做:
try:
response = urllib.request.urlopen(get_team_id_url + team_id)
except http.client.HTTPException as e:
print(e)
那么你应该没问题抓住它。然而,造成这种情况的原因可能是您应该关心的。您好,skyline,谢谢您的回复。当我添加这一行时,我得到下面的错误文件“D:\oppsup\old\u job\queue\u cleaner\u functions.py”,第112行,在get\u team\u name中,http.client.HTTPException为e:name错误:名称“http”未定义您导入的ID
http
?感谢mate修复了它。为什么我需要导入http,而我甚至不使用它,只是为了捕获一个异常?我认为异常处理只由使用的每个导入模块处理,而不必导入特定模块来处理另一个模块中的异常?我认为这可能是python3中urllib
的某种设计缺陷。我也不喜欢导入其他LIB的需要。三年多后,它帮助了我。谢谢你,伙计!这里是py3.6。
Traceback (most recent call last):
File "queue_cleaner_main.py", line 60, in <module>
sys.exit(main())
File "queue_cleaner_main.py", line 57, in main
team_names_to_contact = queue_cleaner_functions.get_team_names(SERVICE_NOW_TEAM_NAME_URL, team[2])
File "D:\oppssup\old_job\queue_cleaner_functions.py", line 141, in get_team_names
r_json = json.loads(response.read().decode('utf8'))
UnboundLocalError: local variable 'response' referenced before assignment
try:
response = urllib.request.urlopen(get_team_id_url + team_id)
except http.client.HTTPException as e:
print(e)