Python基础入门 Day75 异常处理机制

48次阅读
没有评论

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

在编写程序时,错误和异常是不可避免的。如果没有处理机制,程序一旦出错就会终止运行。Python 提供了异常处理机制,让我们能够优雅地应对错误,保证程序的健壮性。

  1. 什么是异常
    异常是在程序运行过程中出现的错误,比如:
  • 文件未找到(FileNotFoundError
  • 除以零(ZeroDivisionError
  • 类型错误(TypeError

例如:

print(10 / 0)  # 会触发 ZeroDivisionError
  1. 基本的异常处理结构
try:
    x = int("abc")
except ValueError:
    print(" 出现了类型转换错误 ")

try 块中编写可能出错的代码,如果出错会进入 except 块。

  1. 捕获多个异常
try:
    num = 10 / 0
except ZeroDivisionError:
    print(" 不能除以零 ")
except ValueError:
    print(" 数值错误 ")
  1. 捕获所有异常
try:
    f = open("nofile.txt")
except Exception as e:
    print(" 出错了:", e)
  1. finally 子句
    finally 中的代码无论是否发生异常都会执行,常用于资源释放:
try:
    f = open("example.txt", "r")
    content = f.read()
except FileNotFoundError:
    print(" 文件不存在 ")
finally:
    print(" 无论如何都会执行 ")
  1. else 子句
    try 块中没有异常时,执行 else
try:
    num = int("123")
except ValueError:
    print(" 转换失败 ")
else:
    print(" 转换成功,结果:", num)
  1. 主动抛出异常
    使用 raise 关键字可以主动引发异常:
def divide(a, b):
    if b == 0:
        raise ZeroDivisionError(" 除数不能为零 ")
    return a / b

print(divide(10, 2))
# print(divide(10, 0))  # 会抛出异常
  1. 自定义异常类
class MyError(Exception):
    pass

try:
    raise MyError(" 这是一个自定义异常 ")
except MyError as e:
    print(" 捕获到:", e)

总结:
Python 的异常处理机制通过 try-except-else-finally 提供了强大的错误控制能力,合理使用能让程序更加稳定。

练习与思考:

  1. 编写一个函数,输入两个数,返回它们的商,并处理除数为零的情况。
  2. 编写一个程序,尝试打开一个不存在的文件,并捕获异常。
  3. 自定义一个异常类,模拟当输入的年龄小于 0 时抛出错误。
正文完
 0
评论(没有评论)