这个问题的一般要点:如果出现问题的可能性很小,我应该抓住可能的错误吗?具体来说:
我有一个应用程序,它可以读取程序以前的历史记录并将其写入 .txt 文件。初始化时,程序读取历史文件以确定它应该和不应该做的操作。如果还没有历史文件,它会创建一个。像这样:
global trackList
try:
# Open history of downloaded MP3s and transfer it to trackList
with open('trackData.txt', 'r') as f:
trackrackList = f.readlines()
except Exception, e: #if file does not exist, create a blank new one
with open('trackData.txt', 'w') as f:
f.write("")
然后程序会根据 MP3 是否在txt
文件中继续下载它们。下载 MP3 后,它会将其添加到txt
文件中。像这样:
mp3File = requests.get(linkURL)
with open('trackData.txt', 'a') as f:
f.write(linkURL + '\n')
现在,几乎 100% 确定该txt
文件自在第一个函数中创建以来将保留。我们正在处理在这里下载一些 MP3 ——该程序将永远不会运行超过几分钟。但是,在下载 MP3 时,历史txt
文件很可能已被用户删除或以其他方式损坏,在这种情况下,由于没有错误处理,程序将崩溃。
如果它不存在,一个好的程序员会将最后一个代码块包装在一个try ... except
创建历史文件的块中,或者这只是不必要的偏执狂和浪费空间?txt
实现起来很简单,但请记住,我有这样的程序,用户在很短的时间内有数百个机会删除/损坏以前创建的 txt 文件。我通常扁平的 Python 代码会变成一个嵌套的try ... except
雷区。