如何解决如何创建一个单独的函数来处理由请求库生成的异常?
我是python软件开发的新手。我创建了一个脚本,其中包含许多函数,这些函数返回请求的输出并处理由它们生成的异常。功能之一。如下:
def ApiResponse(emailHash):
r=None
errorMessage = ""
url = "https://dummy.com"
try:
r = requests.get(url,timeout = TIMEOUT_LIMIT)
except requests.exceptions.Timeout as e:
errorMessage = "Timeout Error"
except requests.ConnectionError as e:
errorMessage = "ConnectionError"
except requests.RequestException as e:
errorMessage = "Some other Request Exception"
return r
我有许多这样的函数,它们针对不同的请求返回响应。但是,它们都重复了异常处理代码。我想在另一个函数中分别处理异常,这样我就不必重复自己了。我已经尝试过类似将变量“ e”传递给其他函数并将其与异常类型进行比较并相应地返回不同的错误消息的尝试,但是我似乎无法进行比较,比如说,e == request.exceptions.Timeout。
我还可以做些什么来仅将异常处理部分分开?我的目标是编写模块化代码!
解决方法
我发现的一种方法是将错误的类型与错误进行比较。例如上述情况。
def exception_handler(e):
if type(e) is requests.exceptions.ConnectTimeout:
return "Timeout Error"
elif type(e) is requests.ConnectionError:
return "ConnectionError"
else:
return "Some other Request Exception"
这应该有效
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。