异常处理是一种良好的编程实践,它能够帮助我们应对程序运行时可能发生的错误情况,并提供相应的处理方式。以下是一些捕获异常的好处:
在 Python 中,我们使用 try-except 语句块来捕获和处理异常。语法结构如下:
try:
# 可能会引发异常的代码块
except ExceptionType1:
# 处理 ExceptionType1 类型的异常
except ExceptionType2:
# 处理 ExceptionType2 类型的异常
...
else:
# 如果没有发生异常,执行的代码块
finally:
# 不管是否发生异常,都会执行的代码块
在上述结构中:
try:
num1 = 10
num2 = 2
result = num1 / num2
print("结果:", result)
except ZeroDivisionError:
print("除数不能为零")
else:
print("计算成功")
finally:
print("程序结束")
输出:
结果: 5.0
计算成功
程序结束
出现异常的情况
try:
num1 = 10
num2 = 0
result = num1 / num2
print("结果:", result)
except ZeroDivisionError as e:
print("除数不能为零")
print(e)
else:
print("计算成功")
finally:
print("程序结束")
输出:
除数不能为零
division by zero
程序结束
我们尝试计算 num1 除以 num2 的结果,并打印输出。
由于 num2 的值为零,会引发 ZeroDivisionError 异常。
通过 try-except 结构,我们捕获到该异常,并打印出友好的错误提示。
有时候,我们希望捕获所有可能发生的异常,而不仅仅是特定类型的异常。为了实现这一点,我们可以使用 except 关键字而不指定具体的异常类型。
例如:
try:
num1 = 10
num2 = 0
result = num1 / num2
print("结果:", result)
except Exception as e:
print("发生了一个异常")
try:
num1 = 10
num2 = 0
result = num1 / num2
print("结果:", result)
except:
print("发生了一个异常")
在上述示例中,我们使用了不带参数的 except 语句块,这样就可以捕获和处理任何类型的异常。如果发生了任何异常,都会执行该语句块,并打印出错误提示。
需要注意的是,在捕获所有异常时,我们可能无法获取到具体的异常信息。因此,在实际开发中,也可以使用Exception这个参数,捕获全部异常。
当然最好根据需要选择捕获特定类型的异常或者处理所有可能的异常。
通过捕获异常,我们可以优雅地处理程序中的错误情况,提高程序的稳定性和用户体验。请根据实际情况,合理地选择和使用异常处理机制。
前面学习文章的读取和写入操作,当我们忘记close的时候,就会出现异常,这个时候就可以使用try-except进行捕获了,大家可以尝试下。
Python基础(十八、文件操作读取)
Python基础(十九、文件操作写入与追加)