计算机网络/计算机科学与应用/系统/运维/开发

Python 程序除错与异常处理

一、什么是异常?

异常就是程序运行时出错,比如:

  • 除以 0

  • 访问不存在的变量 / 列表索引

  • 打开不存在的文件

  • 类型错误(字符串 + 数字)


正确处理:捕获异常 → 处理错误 → 程序继续运行

二、常用的异常处理语法

2.1、基础:try - except(捕获并处理)

try:
    # 可能出错的代码
    num = int(input("请输入数字:"))
    result = 10 / num
    print(result)

except:
    # 出错时执行这里
    print("输入错误!请输入有效数字")

作用:无论 try 里报什么错,都会跳到 except,程序不会崩

2.2、精准捕获:指定异常类型

try:
    num = int(input("输入数字:"))
    print(10 / num)

except ValueError:
    print("你输入的不是数字!")

except ZeroDivisionError:
    print("不能除以 0!")

2.3、完整结构:try - except - else - finally

try:
    # 可能出错
    f = open("test.txt", "r")

except FileNotFoundError:
    print("文件不存在")

else:
    # 没出错才执行
    print("文件读取成功")
    f.close()

finally:
    # 无论是否出错,一定会执行
    print("操作结束")
  • else:代码正常时执行

  • finally:常用于关闭文件、释放资源

2.4、主动抛出异常:raise

age = int(input("输入年龄:"))
if age < 0:
    raise ValueError("年龄不能是负数!")

三、Python 常见异常类型

异常名含义
SyntaxError语法错误(代码写错了)
NameError使用了未定义变量
TypeError类型错误(如字符串 + 数字)
IndexError列表索引越界
KeyError字典键不存在
ValueError值类型不对
ZeroDivisionError除零错误
FileNotFoundError文件不存在

四、实践

  • 不要用空 except(会隐藏 bug)

  • 尽量捕获具体异常,不要一概而论

  • finally 关闭文件、数据库连接

  • 出错时打印清晰提示,方便调试

  • 复杂程序用断点调试,不要只靠猜


人生在世,不如意事十之八九;人生的滋味,哪怕是酸甜或苦辣,也要靠自己去品。人活一口气:气质看一个人的过去,气度看一个人的未来

评论

^