在Python中用户定义的函数中有什么更好的做法:raise异常还是return None?例如,我有一个函数可以找到文件夹中的最新文件.
def latestpdf(folder):
# list the files and sort them
try:
latest = files[-1]
except IndexError:
# Folder is empty.
return None # One possibility
raise FileNotFoundError() # Alternative
else:
return somefunc(latest) # In my case, somefunc parses the filename
Run Code Online (Sandbox Code Playgroud)
另一个选择是保留异常并在调用者代码中处理它,但我认为处理a FileNotFoundError比处理它更清楚IndexError.或者用不同的名称重新引发异常是不好的形式?