我是Python新手。我有一个工作的单块程序,我想使用try: - except:来处理错误,将其分解成单独的函数(try:-except:)。
在创建密钥库SecretClient时捕获错误的一些方法是什么?
尝试1:
kv_name时,这里什么都不会发生。except:消息。credentials = DefaultAzureCredential()
def create_kv_client(kv_name, credentials):
try:
kv_uri = 'https://' + kv_name + '.vault.azure.net'
kv_client = SecretClient(vault_url=kv_uri, credential=credentials)
except:
logging.error('####### Failed to create Key Vault Client #######')
return kv_client
kv_client = create_kv_client('notmykeyvaultname', credentials)尝试2:
kv_name时,这里也不会发生任何事情。credentials = DefaultAzureCredential()
def create_kv_client(kv_name, credentials):
try:
kv_uri = 'https://' + kv_name + '.vault.azure.net'
kv_client = SecretClient(vault_url=kv_uri, credential=credentials)
except:
logging.error('####### Failed to create Key Vault Client #######')
return kv_client
kv_client = create_kv_client('notmykeyvaultname', credentials)
if kv_client == None:
raise Exception('Failed to create Key Vault Client')尝试3:
try: - except:移动到函数调用也没有触发日志记录消息。SecretClient在这里失败!?credentials = DefaultAzureCredential()
def create_kv_client(kv_name, credentials):
kv_uri = 'https://' + kv_name + '.vault.azure.net'
kv_client = SecretClient(vault_url=kv_uri, credential=credentials)
return kv_client
try:
kv_client = create_kv_client('notmykeyvaultname', credentials)
except:
logging.info('####### Failed to create Key Vault client #######')健全检查:
SecretClient的输出不是None。SecretClient是否已经成功创建?credentials = DefaultAzureCredential()
kv_uri = 'https://' + 'notmykeyvaultname' + '.vault.azure.net'
kv_client = SecretClient(vault_url=kv_uri, credential=credentials)
kv_client
`<azure.keyvault.secrets._client.SecretClient at 0x1512046b370>`发布于 2020-10-29 23:52:22
构造函数不检查给定的保险库是否存在,也不检查是否可以访问它,因此在您的尝试中它成功了:您得到一个SecretClient实例,没有引发错误。
如果URL是一个不存在的库,或者是您未被授权访问的库,那么当您第一次尝试一个操作时,您将看到一个错误:
>>> vault_url = "https://nonexistentvaultdoesnotexist.vault.azure.net"
>>> client = SecretClient(vault_url, DefaultAzureCredential())
>>> client.get_secret('secret_name')
Traceback (most recent call last):
...
azure.core.exceptions.ServiceRequestError: <urllib3.connection.VerifiedHTTPSConnection object at 0x000001E313946198>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed失败的操作会引发在蓝芯中定义的错误,您可以像往常一样使用try/except块来处理这些错误。
https://stackoverflow.com/questions/64600024
复制相似问题