python遇到异常流程

在 Python 中,程序遇到异常时的退出行为取决于是否对异常进行了捕获和处理

  1. 未捕获的异常
    如果异常发生后没有被 try-except 语句捕获,程序会立即终止,并返回一个非零的退出码(通常是 1),同时打印异常信息(包括错误类型、描述和堆栈跟踪)。

    例如:

    print(1 / 0)  # 触发 ZeroDivisionError 且未捕获
    print("这段代码不会执行")  # 程序已退出
    

    运行后会直接崩溃,退出码为 1

  2. 捕获并处理异常
    如果用 try-except 捕获了异常,程序会跳过异常发生的位置,继续执行 except 块及之后的代码,不会退出,退出码为 0(正常结束)。

    例如:

    try:
        print(1 / 0)
    except ZeroDivisionError:
        print("捕获到除零错误")
    print("程序继续执行")  # 这句会正常执行
    

    运行后程序不会退出,最终退出码为 0

  3. 主动退出
    可以通过 sys.exit(n) 主动指定退出码,n 为整数(0 表示正常退出,非零表示异常退出)。

    例如:

    import sys
    try:
        print(1 / 0)
    except:
        sys.exit(2)  # 主动指定退出码为 2 并退出
    

总结:

  • 未处理的异常会导致程序退出,退出码非零;
  • 处理后的异常不会终止程序,退出码为 0(除非主动调用 sys.exit 指定非零值)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值