共计 1523 个字符,预计需要花费 4 分钟才能阅读完成。
1. 什么是异常
异常是指在代码运行过程中,虽然没有语法错误,但在执行时出现了错误,如除零错误、下标越界等。此类错误在运行时被检测到,称为 异常。如果出现异常,必须进行处理,否则程序会中止执行,影响用户体验。
Python 支持程序员自行处理异常,使用 try-except 语句可以捕获和处理异常。
2. Python 中常见的异常类型
常见的异常类型包括:
ZeroDivisionError:除零错误IndexError:下标越界错误ValueError:传入无效值FileNotFoundError:文件未找到TypeError:类型错误
3. try-except 语句
try-except 语句用于捕获和处理异常。其工作流程如下:
- 执行
try块中的代码。- 如果没有异常,直接跳过
except块。
- 如果没有异常,直接跳过
- 如果
try块中的代码出现异常,执行与异常匹配的except块。except块可以有多个,按顺序逐个匹配,匹配成功后执行相应代码。
- 异常处理完后,如果存在
finally子句,则执行finally中的代码。 - 如果没有异常,且存在
else子句,则执行else子句中的代码。 - 如果异常没有被捕获,则程序终止执行。
代码示例:
try:
x = 10 / 0
except ZeroDivisionError as e:
print("除零错误:", e)
finally:
print("执行完毕")
4. raise 关键字
raise 用于手动抛出异常。可以抛出指定类型的异常,并可为异常添加描述信息。raise 不带参数时,原样抛出当前的异常。
代码示例:
def check_value(value):
if value < 0:
raise ValueError("值不能为负数")
return value
5. PyCharm 中的代码调试
在使用 PyCharm 时,可以通过调试工具逐行执行代码,查看变量的值,并分析异常的发生位置和原因。
6. 本章总结
- 异常处理是程序健壮性的重要组成部分。
- 通过
try-except语句,可以有效捕获并处理异常,避免程序崩溃。 finally子句确保无论是否发生异常,都会执行某些清理工作。
7. 小试牛刀
- 下列 Python 保留字中,用于异常处理结构中用来捕获特定类型异常的是(B)
- A. def
- B. except
- C. while
- D. pass
- Python 中用来抛出异常的关键字是(C)
- A. try
- B. except
- C. raise
- D. Finally
- 在异常处理中,如释放资源、关闭文件、关闭数据库等由(C)来完成。
- A. try 子句
- B. catch 子句
- C. finally 子句
- D. raise 子句
- 当方法遇到异常又不知如何处理时,下列哪种说法是正确的(B)
- A. 捕获异常
- B. 抛出异常
- C. 声明异常
- D. 嵌套异常
- 关于程序的异常处理,以下选项中描述错误的是(C)
- A. 程序异常发生经过妥善处理可以继续执行
- B. 异常语句可以与 else 和 finally 保留字配合使用
- C. 编程语言中的异常和错误是完全相同的概念
- D. Python 通过 try、except 等保留字提供异常处理功能
- 关于 Python 的异常处理语句说法错误的是(C)
- A. 将可能发生异常的语句放在
try子句里。 - B.
except子句用于捕捉并处理异常。 - C.
else子句里包含了不发生异常时要执行的语句,异常处理里必须包含else句。 - D.
finally子句包含了不管是否发生异常都要执行的语句。
- A. 将可能发生异常的语句放在
8. 案例实战
示例代码:
# 示例:读取文件并处理异常
try:
with open('file.txt', 'r') as file:
content = file.read()
except FileNotFoundError:
print("文件未找到")
except IOError:
print("文件读取错误")
finally:
print("操作完成")
正文完