我很想知道在课堂上处理异常的最佳做法是什么。
据我所知,使用" print"不是一个好习惯。在课堂上的陈述。因此程序员返回值并在主例程中将其打印到类外。如果是这种情况,我该如何验证类中发生的异常?
一个是使用类似的代码,
class temp():
try:
import os
return 1
except:
return 0
这只是一个例子。
我的要求是这样的,我想评估一个语句,我想要捕获异常。将此方法视为私有方法,将在内部调用。
E.G。让我试试一个例子。
class test():
def __init__(self):
pass
def read(self):
try:
f = open('file.txt')
fr = f.readlines()
return fr
except Exception as e:
# not sure should i return e or should i return 0
# to say that this function failed.
def write(self):
self.handle = self.read()
if self.handle:
# do something
else:
# return the exception
if __name__ == '__main__':
test_object = test()
print test_object.write()
猜猜我明白了这一点。
谢谢, 巴拉。
答案 0 :(得分:2)
这一切都取决于你要做什么,但提出异常以指示错误是指示该方法出错的首选方法。
有时,最佳做法是不在类中处理异常,而是在调用方法时处理异常。假设您的test.read()
是:
...
def read(self):
f = open('file.txt')
fr = f.readlines()
return fr
你会这样做:
t = test()
try:
t.read()
except Exception as e:
# Handle exception here
通常,您在类中处理异常以执行其他操作,例如清理。而不是将0/1 / String返回到"假设函数失败",您应该引发相同的异常。 E.g:
def read(self):
try:
f = open('file.txt')
fr = f.readlines()
return fr
except Exception as e:
if f:
f.close()
raise
答案 1 :(得分:0)
通常最好创建自己的例外,并在出现问题时提出这些例外。然后,使用该类的代码可以捕获这些exeptions并在发生这种情况时做他们想做的事。