我经常发现自己从一个方法返回一个布尔值,该方法在多个位置使用,以便将围绕该方法的所有逻辑包含在一个地方。所有(内部)调用方法需要知道的是操作是否成功。
我正在使用 Python,但问题不一定特定于该语言。我能想到的只有两个选项引发异常,尽管情况并不例外,并且记住在每个调用函数的地方捕获该异常返回一个布尔值,就像我正在做的那样。
这是一个非常简单的例子,它演示了我在说什么。
import os
class DoSomething(object):
def remove_file(self, filename):
try:
os.remove(filename)
except OSError:
return False
return True
def process_file(self, filename):
do_something()
if remove_file(filename):
do_something_else()
虽然它有效,但它的设计很糟糕。我该如何改进呢?