【发布时间】:2018-10-19 17:13:06
【问题描述】:
我有一个类 dataset.py,它有一堆函数,还实现了一个记录器,如下所示:
class dataset:
def get_data():
try:
if(sourcefile != None):
if not os.path.isfile(sourceFile):
raise FileNotFoundError
except FileNotFoundError:
logger.error('File not found!')
def do_something():
return
我以下列方式使用这些类:
datasetObj = dataset()
datasetObj.get_data()
datasetObj.do_something()
现在,即使 get_data() 引发 FileNotFoundError,它也会在 except 块中进行处理,并且程序会继续执行 do_something()。
我该如何阻止这种情况?如果存在未找到文件错误,则应停止执行。 如何将我的异常返回给调用者并使我的 main.py 不再执行?
【问题讨论】:
-
你为什么会发现异常?
-
因为我希望记录器将其记录到文件中。如果我没有抓住它,我就无法记录它。
-
您可以在记录错误后重新
raise FileNotFoundError。 -
要么 not 捕获异常(让代码 using
dataset()) 处理它),或者在实例上设置标志并更改稍后调用do_somehing()时的行为。 -
@RoshanJoeVincent:您可以随时重新引发异常。
标签: python exception-handling try-catch