我正在使用请求
将python客户端写入Web服务(REST)除非用户输入错误的凭据,否则我想提出
我有以下代码块
try:
ret=self.req_session.get(URL)
if (ret.status_code == 401):
raise Authexecption("Improper credentials")
else:
ret.raise_for_status()
except Authexecption:
logging.error("Unable to authenticate. Please check you credentails")
except requests.exceptions.HTTPError:
logging.error("Issue with communicating with Web-Services. The HTTP response is " + str(ret.status_code))
except requests.exceptions.Timeout:
logging.error("Time out while connecting to the Web-Service..")
这里的想法是,我将为auth问题提出自定义错误消息,并为所有其他问题(5xx,404等等)提供通用错误消息。
当我执行此操作时,我收到以下错误
except Authexecption:
NameError: global name 'Authexecption' is not defined
我对python很新,并试图学习,我该如何解决这个问题?
- 提前谢谢
答案 0 :(得分:0)
您需要先定义自定义例外:
class AuthException(Exception): # Authexecption may be misspelled...
pass
或许有一个比基本异常Exception
更好的继承异常。看看exception hierarchy。
答案 1 :(得分:0)
错误说python找不到类Authexception
。也就是说,它不存在或者没有导入。
要解决此问题,您需要先创建它:
class AuthException(Exception):
def __init__(self, message, errors):
# Call the base class constructor with the parameters it needs
super(AuthException, self).__init__(message)
然后将其导入到您需要的任何位置。