因为它非常不明确,并且无法使您对异常做任何有趣的事情。而且,如果您捕获了每个异常,则可能会发生很多甚至不知道正在发生的异常(这可能导致您的应用程序失败,而您实际上并不知道为什么)。您应该能够(通过阅读文档或进行实验)特别地预测需要处理哪些异常以及如何处理它们,但是如果您从一开始就盲目地抑制所有这些异常,您将一无所知。
因此,应大家的要求,这里有个例子。程序员正在编写Python代码,她得到了一个IOError
。她决定不进行进一步调查,而是决定捕获所有异常:
def foo():
try:
f = open("file.txt")
lines = f.readlines()
return lines[0]
except:
return None
她没有用他的方式意识到问题:如果文件存在并且可以访问,但文件为空怎么办?然后此代码将引发一个IndexError
(因为列表lines
为空)。因此,她将花费数小时来思考为什么None
文件存在时为什么要从该函数中恢复,并且如果没有更明确地捕获错误(如果她正在访问可能不存在的数据)而没有意识到这一点,那么就不会意识到这一点。 。