Python基础入门 Day73 异常处理与错误捕获

81次阅读
没有评论

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

在编程过程中,错误和异常是难以避免的。Python 提供了异常处理机制,可以在错误发生时捕获并进行相应处理,避免程序直接崩溃。

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

如果不处理异常,程序会直接中断。

  1. 基本的 try-except
try:
    num = int("abc")
except ValueError:
    print(" 输入的内容无法转换为数字 ")

try 块中的代码可能出错,若发生 ValueError,程序不会崩溃,而是执行 except 中的内容。

  1. 捕获多个异常
try:
    result = 10 / 0
except ZeroDivisionError:
    print(" 不能除以零 ")
except ValueError:
    print(" 数值错误 ")

可以根据不同错误类型编写不同的处理方式。

  1. 捕获所有异常
try:
    f = open("nofile.txt")
except Exception as e:
    print(" 发生错误:", e)

使用 Exception 可以捕获所有异常,并输出错误信息。

  1. finally 子句
    无论是否发生异常,finally 中的代码都会执行,常用于释放资源:
try:
    f = open("data.txt")
    content = f.read()
except FileNotFoundError:
    print(" 文件不存在 ")
finally:
    print(" 关闭文件 ")
    f.close()
  1. else 子句
    如果 try 块没有异常发生,可以执行 else 块:
try:
    num = int("123")
except ValueError:
    print(" 输入有误 ")
else:
    print(" 转换成功:", num)
  1. 自定义异常
    可以通过 raise 抛出异常:
def check_age(age):
    if age < 0:
        raise ValueError(" 年龄不能为负数 ")
    else:
        print(" 年龄合法 ")

check_age(-5)

总结:
异常处理机制能提高程序的健壮性。常见的结构是 try-except-finally,在关键位置捕获错误,保证程序即使出现问题也能安全退出。

练习与思考:

  1. 编写一个程序,要求用户输入两个数并相除,处理可能出现的除零和输入错误。
  2. 实现一个函数,判断输入的文件名是否存在,如果不存在则提示错误,否则读取内容。
  3. 编写一个自定义异常类,用于判断分数是否在 0 到 100 之间,超出范围时抛出异常。
正文完
 0
评论(没有评论)