Python-尝试例外警告

Python-尝试例外警告,python,warnings,try-except,Python,Warnings,Try Except,我最近在PyCharm编辑器中用Python编写代码时遇到了一个问题。每当我做一个try-except语句时,出于某种原因,我都会得到一个警告(单词:except下面的黄线) 以下是一个例子: s = "Text" try: print(s[2]) except: print("There is no character at that index") 当我用PyCharm编写这个精确的代码时,我得到了一个警告。当我将鼠标悬停在警告上时

我最近在PyCharm编辑器中用Python编写代码时遇到了一个问题。每当我做一个try-except语句时,出于某种原因,我都会得到一个警告(单词:except下面的黄线)

以下是一个例子:

s = "Text"

try:
    print(s[2])
except:
    print("There is no character at that index")
当我用PyCharm编写这个精确的代码时,我得到了一个警告。当我将鼠标悬停在警告上时,它会显示:

Too broad exception clause 
PEP 8: E722 do not use bare 'except'

知道为什么会发生这种情况吗?

捕获异常时,尽可能提及特定的异常,而不是使用简单的except:子句

例如:

try:
    import platform_specific_module
except ImportError:
    platform_specific_module = None
一个简单的Exception:子句将捕获SystemExit和KeyboardInterrupt异常,这使得使用Control-C中断程序变得更加困难,并且可以掩盖其他问题。如果要捕获所有表示程序错误的异常,请使用Exception:(bare Exception相当于Exception BaseException:)

一个好的经验法则是将“除外”条款的使用限制在两种情况下:

异常处理程序是否将打印或记录回溯;至少用户会意识到发生了错误


如果代码需要做一些清理工作,但随后让异常通过raise向上传播。尝试…最终可能是处理此情况的更好方法。

一个简单的
异常将捕获所有类型的异常,根据PEP8,不鼓励这样做。具体一点是很好的做法。在您的情况下,您可能只希望通过执行以下操作来捕获
索引器
异常:
但索引器除外: