在 Python 中使用 try without except(忽略异常)
Using try without except (ignoring exceptions) in Python
使用该pass
语句使用不带 except 的 try 块。该pass
语句什么也不做,在语法上需要语句但程序不需要任何操作时使用。
主程序
my_list = [] # ✅ Ignore any exception try: print(my_list[100]) except: # 👇️ this runs pass
我们使用pass
语句来忽略异常。
第一个示例中的语句
except
处理任何类型的异常。块中的代码try
可以引发任何异常,并且它会传递给except
块。
主程序
my_list = [] # ✅ Ignore any exception try: # 👇️ raises ValueError my_list.remove(1000) except: # 👇️ this runs pass
pass
语句
什么都不做,当语法上需要语句但程序不需要任何操作时使用。
通常,使用except
没有明确指定异常类型的语句被认为是一种不好的做法。
这主要是因为捕获任何错误都会使您的代码不那么直观且更难阅读。
只忽略特定的错误
另一种方法是将except
块的范围限定为特定错误。
主程序
my_list = [] try: print(my_list[100]) except IndexError: # 👇️ this runs pass
该except
块仅处理IndexError
异常。
如果引发任何其他类型的异常,该except
块将不会处理它。
例如,以下代码ZeroDivisionError
在try
块中引发 a 并使程序崩溃。
主程序
# ⛔️ ZeroDivisionError: division by zero try: print(25 / 0) except IndexError: pass
忽略多个特定错误
您还可以在一个块中指定多个异常类except
。
主程序
my_list = [] try: print(25 / 0) except (IndexError, ZeroDivisionError): # 👇️ this runs pass
该
except
块运行是因为它处理块中引发的。 ZeroDivisionError
try
如果必须指定多个异常类,请确保将它们括在括号中。
您可以在文档的异常层次结构列表中查看 Python 中的所有异常类
。