Python之捕捉异常详解
在 Python 中,我们经常会遇到一些运行时错误,称为异常。例如,当我们尝试访问一个列表的索引超过了列表长度时,就会抛出 IndexError
异常。这些异常会导致程序崩溃,因此我们需要在代码中检测并处理这些异常。
异常处理语句
Python 提供了 try-except-finally
语句用于异常处理。
try:
# 尝试运行代码
except SomeError:
# 发生 SomeError 异常时的处理逻辑
finally:
# 不管发生了什么,这里的代码都会执行
在 try
块中,我们需要编写可能会抛出异常的代码。如果发生异常,异常处理程序将会被触发。异常处理程序是用 except
语句定义的,后面跟着异常类型(例如 IndexError
)。如果程序抛出了该异常类型,那么就会执行该处理程序。
最后,我们可以使用 finally
块来编写任何清理代码。
示例:尝试从字典中访问不存在的键
下面是一个例子。我们尝试从一个字典中访问不存在的键。这将会抛出 KeyError
异常,我们可以使用 try-except-finally 语句来处理它。
d = {'a': 1, 'b': 2}
try:
value = d['c']
except KeyError:
print('The key "c" does not exist in the dictionary.')
finally:
print('The finally block is always executed.')
输出信息为:
The key "c" does not exist in the dictionary.
The finally block is always executed.
在 try
块中,我们访问一个不存在的键。由于该键不存在,会抛出一个 KeyError
异常,因此我们需要使用 except
块捕捉它。finally
块中的代码总是会被执行。
示例:尝试除以0
下面是另一个例子,我们尝试除以 0。这将会抛出 ZeroDivisionError
异常,我们可以使用 try-except 语句来处理它。
a = 1
b = 0
try:
c = a / b
except ZeroDivisionError:
print('Cannot divide by zero.')
输出信息为:
Cannot divide by zero.
在 try
块中,我们尝试除以 0,这将会抛出一个 ZeroDivisionError
异常。我们使用 except
块捕捉它并输出错误信息。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python之捕捉异常详解 - Python技术站