Вы можете добиться желаемого поведения, включив возвращение в блок try:
def jira_connect(User, Passwd):
try:
jira = JIRA(basic_auth=(User, Passwd), options={'server': 'https://jira-server-address'})
return jira
except JIRAError as e:
if e.status_code == 401:
print "Login to JIRA failed. Please check your username and password and try again !"
exit()
В противном случае, если возникнет исключение, локальная переменная jira
не будет назначена в точке возврата.
В противном случае вы можете назначить, например, jira = None
в блоке исключений:
def jira_connect(User, Passwd):
try:
jira = JIRA(basic_auth=(User, Passwd), options={'server': 'https://jira-server-address'})
except JIRAError as e:
if e.status_code == 401:
print "Login to JIRA failed. Please check your username and password and try again !"
exit()
jira = None
return jira
Но я бы с осторожностью отнесся к этому в случае JIRAError
с кодом состояния, отличным от401 привел к возврату None
, и код, который позже был в скрипте, полагался на действительное соединение.В зависимости от этого вы можете поместить вызов exit()
в блок exc за пределами оператора if.