【发布时间】:2018-12-02 20:10:15
【问题描述】:
我想知道是否可以编写一个函数来避免每次在 Python 中为有风险的函数调用 try ... except 块。
我尝试了以下代码,但没有成功:
def e(methodtoRun):
try:
methodtoRun.call()
except Exception as inst:
print(type(inst)) # the exception instance
print(inst.args) # arguments stored in .args
print(inst) # __str__ allows args to be printed directly,
def divider(a, b):
return a / b
e(divider(1,0))
在此代码中,Python 运行 divider(1,0) 并尝试将结果作为参数传递给 e 函数。
我想要做的是传递一个函数作为参数并在函数try ... except块中运行它,这样,如果发生任何错误,我会直接将错误添加到日志中。
这可能吗?
【问题讨论】:
-
绝对不要这样做。每当引发异常时,您都应该处理它,否则您的程序将无法继续。如果你不能处理它,那么它就是一个不可纠正的异常,你唯一能做的就是让异常冒泡并希望调用者能够处理它。与其尝试创建自己的记录器,不如使用来自the standard library 的记录器。
-
嗨,正如我在下面的评论中添加的那样,我只需要在日志记录足够的情况下使用它,不需要其他操作。但是对于我需要处理异常的其他情况,我肯定需要单独的异常处理来处理独立的情况。感谢您的评论。
标签: python python-3.x exception-handling