Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Exception urllib异常http.client.BadStatusLine_Exception_Python 3.x_Urllib - Fatal编程技术网

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)