我有一个尝试/除了我在我的代码中经常重复除部分。这让我相信将除部分分成函数会更好。
以下是我的用例:
<wls:weblogic-web-app ...>
...
<wls:container-descriptor>
<wls:prefer-application-packages>
<wls:package-name>net.sf.ehcache</wls:package-name>
</wls:prefer-application-packages>
</wls:container-descriptor>
</wls:weblogic-web-app>
我如何将这个逻辑分离成一个函数,这样我就可以做一些简单的事情:
try:
...
except api.error.ReadError as e:
...
except api.error.APIConnectionError as e:
...
except Exception as e:
...
答案 0 :(得分:1)
只需定义功能:
def my_error_handling(e):
#Do stuff
...并传入exception
对象作为参数:
try:
#some code
except Exception as e:
my_error_handling(e)
只使用通用Exception
类型,您将拥有一个except
子句,并处理和测试处理函数中的不同错误类型。
为了检查捕获的异常的名称,您可以通过执行以下操作来获取它:
type(e).__name__
将打印名称,例如ValueError
,IOError
等
答案 1 :(得分:0)
定义你的功能:
def my_error_handling(e):
#Handle exception
做你提出的建议:
try:
...
except Exception as e:
my_error_handling_function(e)
您可以通过在函数中获取异常“e”的类型来处理逻辑。请参阅:python: How do I know what type of exception occurred?
答案 2 :(得分:0)
我建议重构您的代码,以便try / except块只出现在一个位置。
例如,带有send()
方法的API类似乎是包含您在问题中描述的错误处理逻辑的合理候选者。