I can't for the life of me figure out why I can't catch this exception.
Looking here at this guide.
def get_team_names(get_team_id_url, team_id): print(get_team_id_url + team_id) try: response = urllib.request.urlopen(get_team_id_url + team_id) except urllib.error.HTTPError as e: print(e.code) print(e.read()) except urllib.error.URLError as e: print(e.code) print(e.read())
exception:
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: ''
In addition, my entire method seems to be very clunky. I cannot figure out an elegant way to handle exceptions, including a case where no result is returned.
def get_team_names(get_team_id_url, team_id): print(get_team_id_url + team_id) try: response = urllib.request.urlopen(get_team_id_url + team_id) except Exception as e: #print(e.code) #print(e.read()) print('shit') #print(response.read().decode('utf8')) r_json = json.loads(response.read().decode('utf8')) print(r_json['result']) for i in r_json['result']: print(i['group'])
Exception:
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