Python学习笔记——异常处理

20次阅读
没有评论

共计 1523 个字符,预计需要花费 4 分钟才能阅读完成。


1. 什么是异常

异常是指在代码运行过程中,虽然没有语法错误,但在执行时出现了错误,如除零错误、下标越界等。此类错误在运行时被检测到,称为 异常。如果出现异常,必须进行处理,否则程序会中止执行,影响用户体验。

Python 支持程序员自行处理异常,使用 try-except 语句可以捕获和处理异常。

2. Python 中常见的异常类型

常见的异常类型包括:

  • ZeroDivisionError:除零错误
  • IndexError:下标越界错误
  • ValueError:传入无效值
  • FileNotFoundError:文件未找到
  • TypeError:类型错误

3. try-except 语句

try-except 语句用于捕获和处理异常。其工作流程如下:

  1. 执行 try 块中的代码
    • 如果没有异常,直接跳过 except 块。
  2. 如果 try 块中的代码出现异常,执行与异常匹配的 except 块。
    • except 块可以有多个,按顺序逐个匹配,匹配成功后执行相应代码。
  3. 异常处理完后,如果存在 finally 子句,则执行 finally 中的代码。
  4. 如果没有异常,且存在 else 子句,则执行 else 子句中的代码。
  5. 如果异常没有被捕获,则程序终止执行。

代码示例:

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. 小试牛刀

  1. 下列 Python 保留字中,用于异常处理结构中用来捕获特定类型异常的是(B)
    • A. def
    • B. except
    • C. while
    • D. pass
  2. Python 中用来抛出异常的关键字是(C)
    • A. try
    • B. except
    • C. raise
    • D. Finally
  3. 在异常处理中,如释放资源、关闭文件、关闭数据库等由(C)来完成。
    • A. try 子句
    • B. catch 子句
    • C. finally 子句
    • D. raise 子句
  4. 当方法遇到异常又不知如何处理时,下列哪种说法是正确的(B)
    • A. 捕获异常
    • B. 抛出异常
    • C. 声明异常
    • D. 嵌套异常
  5. 关于程序的异常处理,以下选项中描述错误的是(C)
    • A. 程序异常发生经过妥善处理可以继续执行
    • B. 异常语句可以与 else 和 finally 保留字配合使用
    • C. 编程语言中的异常和错误是完全相同的概念
    • D. Python 通过 try、except 等保留字提供异常处理功能
  6. 关于 Python 的异常处理语句说法错误的是(C)
    • A. 将可能发生异常的语句放在 try 子句里。
    • B. except 子句用于捕捉并处理异常。
    • C. else 子句里包含了不发生异常时要执行的语句,异常处理里必须包含 else 句。
    • D. finally 子句包含了不管是否发生异常都要执行的语句。

8. 案例实战

示例代码:

# 示例:读取文件并处理异常
try:
    with open('file.txt', 'r') as file:
        content = file.read()
except FileNotFoundError:
    print("文件未找到")
except IOError:
    print("文件读取错误")
finally:
    print("操作完成")
正文完
 0
xjd
版权声明:本站原创文章,由 xjd 于2025-02-26发表,共计1523字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)