我有一个函数,它既应该独立运行,又可以由处理某些异常的其他函数使用
def some_function():
try:
do_something()
except SpecificException:
handle_exception()我还有第二个函数,它调用第一个函数,但是希望在some_function中以不同的方式处理这个异常
def different_function():
try:
some_function()
except SpecificException:
different_handling()这有可能吗?我正在寻找的是一种在some_function中禁用except的方法,以便different_function中的try-except可以捕获SpecificException。
发布于 2020-10-05 18:23:48
告诉函数some_function不要处理异常并传递它
def some_function(handleException=True):
try:
do_something()
except SpecificException:
if !handleException: raise
handle_exception()
def different_function():
try:
some_function(handleException=False)
except SpecificException:
different_handling()或者为函数some_function提供要使用的异常处理程序
def some_function(exceptionHandler=handle_exception):
try:
do_something()
except SpecificException:
exceptionHandler()
def different_function():
some_function(exceptionHandler=different_handling)发布于 2020-10-05 18:21:42
您可以在第一个函数中执行所需的逻辑后再次引发异常。
def some_function():
try:
do_something()
except SpecificException as e:
handle_exception()
raise e 发布于 2020-10-05 18:33:07
您可以使用raise语句重新引发它。
def some_function():
try:
do_something()
except SpecificException:
handle_exception()
raise正如the doc所说:If no expressions are present, raise re-raises the last exception that was active in the current scope.
https://stackoverflow.com/questions/64206407
复制相似问题