这个问题的一般要点是:如果甚至有可能出现问题的可能性很小,我应该抓住可能的错误吗?特别:
我有一个应用程序,可以读取和写入程序的先前历史记录到.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("")
Run Code Online (Sandbox Code Playgroud)
程序然后根据它们是否在txt文件中继续下载MP3 .下载MP3后,会将其添加到txt文件中.像这样:
mp3File = requests.get(linkURL)
with open('trackData.txt', 'a') as f:
f.write(linkURL + '\n')
Run Code Online (Sandbox Code Playgroud)
现在,几乎100%肯定txt文件将保留自第一个函数中创建的时间.我们正在处理下载一些MP3 - 程序将永远不会运行超过几分钟.但是,存在远程可能性,txt用户删除了历史文件,或者在下载MP3时损坏了历史文件,在这种情况下,由于没有错误处理,程序将崩溃.
一个优秀的程序员try ... except是否会在创建历史txt文件的块中包装最后一段代码(如果它不存在),或者只是不必要的偏执和浪费的空间?实现它是微不足道的,但请记住,我有这样的程序,用户可以在很短的时间内删除/破坏以前创建的txt文件.我平常的Python代码将变成嵌套的try ... except雷区.
| 归档时间: |
|
| 查看次数: |
407 次 |
| 最近记录: |