将我的错误检查器转换为"try-catch else"



下面有一些代码,用于检查列表列表是否包含空字符串。在上下文中,我的应用程序的用户将填写调查问题,但如果他们将其中一个调查问题留空,那么我想提醒他们,他们需要返回并填写调查。我需要在很多不同的地方执行这个检查,所以我认为类将是一个很好的用例,可以提高程序的可读性和可移植性。

然而,我已经学会了除了块之外的尝试,并认为这可能是一个更好的地方来展示我的代码的本质。但我在将我的简单类转换为try-except块时遇到了一些问题,如果可以的话,我想尝试以这种方式实现它。然而,我认为我想做的可能不适合尝试测试块,所以我希望得到一些反馈。

class ErrorCheck():
def __init__(self, survey_responses):
self.survey_responses = survey_responses

def check_empty(self):
for item in self.survey_responses:
if '' in item:
print('One of these is empty')

x = ErrorCheck([['abc'],[2],['apples'],['']])
x.check_empty()

您尝试实现的代码非常正确。除了如果您想突出显示错误,而不是只使用print函数,请使用raise Exception()并在括号中插入一个字符串,在您的情况下为"其中一个为空"。

这将导致如下输出:Exception: One of these is empty

这可能就是你想要的。

正如其他人已经指出的,您想要做的可能是raise是一个异常,在您提出它之后,您可以在try中捕获它。。。except块并对此做点什么:

survey_responses = ['a','','c']
def check_empty(responses):
for response in responses:
if response == '':
raise Exception('Missing Answer: One or more answers are empty')
try:
check_empty(survey_responses)
except Exception as exc:
print(exc)

最新更新