Python-使用urllib对url请求执行try/exception和exit代码

Python-使用urllib对url请求执行try/exception和exit代码,python,try-catch,urllib,exit,with-statement,Python,Try Catch,Urllib,Exit,With Statement,我的代码中有一些try语句。在内部,使用“with”创建url连接的步骤很少 我的问题是: 即使某个url连接不工作,我的代码(数据未发布或更新)也会标记为已完成,返回代码为0。我需要改变它。我想为每个url连接创建一个单独的条件(如果失败,请给出一个退出代码“xx”并且未完成) 我试图为每个url连接传递第一个主“try”和cratet try,但这一个完全不起作用 这是我代码的一部分 try: for my_name in names: if my_name in MyCatal

我的代码中有一些try语句。在内部,使用“with”创建url连接的步骤很少

我的问题是: 即使某个url连接不工作,我的代码(数据未发布或更新)也会标记为已完成,返回代码为0。我需要改变它。我想为每个url连接创建一个单独的条件(如果失败,请给出一个退出代码“xx”并且未完成)

我试图为每个url连接传递第一个主“try”和cratet try,但这一个完全不起作用

这是我代码的一部分

try:
  for my_name in names:
    if my_name in MyCatalog:
      cal_select = my_name[1:]
      resource_name = my_name

    # 1ST URL CONNECTION  
      getResourceData = {
        "id": resource_name
      }

      getResourceRequest = urllib.request.Request( url = 'www.mypage.com',
        method = "POST", data=bytes(urllib.parse.urlencode(getResourceData).encode("utf-8")))
      
      getResourceRequest.add_header("Content-type", "application/x-www-form-urlencoded; charset=UTF-8")
      
      with opener.open(getResourceRequest, timeout=2) as getResourceResp:
        getResourceResponseData = json.loads(getResourceResp.read().decode("utf-8"))
        bkp_file_name = str(my_name + '_bkp.txt')
        local_filetemp = os.path.join(dir_name, bkp_file_name)
        with open(local_filetemp, "w") as g:
          resource_response_cal = json.dump(getResourceResponseData, g, ensure_ascii=False, indent=4)



    # 2ND URL CONNECTION  
    
      updateResourceData = {
        "id": resource_name,
        "simpleId": resource_name,
        "data": [ ],
      }
        
      updateResourceRequest = urllib.request.Request( url = 'www.mypage.com',
        method ="POST", data=bytes(urllib.parse.urlencode(updateResourceData, True).encode("utf-8")))
       
      updateResourceRequest.add_header("Content-type", "application/x-www-form-urlencoded; charset=UTF-8")
        
      with opener.open(updateResourceRequest, timeout=2) as updateResourceResp:
        updateResourceResponseData = json.loads(updateResourceResp.read().decode("utf-8"))
    
    
        # 2ND URL CONNECTION - part 2
       
      with open(data_filename, 'r') as data_File:
        data_F = data_File.read()
      
        update2ResourceData = {
          "id": resource_name,
          "simpleId": resource_name,
          "data": [ data_F ],
        }
        
        update2ResourceRequest = urllib.request.Request( url = 'www.mypage.com',
          method ="POST", data=bytes(urllib.parse.urlencode(update2ResourceData, True).encode("utf-8")))
        
        update2ResourceRequest.add_header("Content-type", "application/x-www-form-urlencoded; charset=UTF-8")
        
        with opener.open(update2ResourceRequest, timeout=2) as update2ResourceResp:
          update2ResourceResponseData = json.loads(update2ResourceResp.read().decode("utf-8"))
    
    elif my_name not in MyCatalog:
      pass
      
    else:
      print('Something not right')
 
except:
  print('ERROR.Try again.') 
  sys.exit(10)