python一套完整的异常处理案例

1.无措处理案例

2.主动触发异常案例

3.finally扫尾工作处理方案

4.自定义异常处理案例

5.常见异常案例

6.默认异常处理

源码

# 1. 无措处理方案

try:

    age = int(input("请输入您的年龄:"))

except ValueError:

    pass # 无操作处理

 

 

 

 

def input_password():

    # 提示用户输入密码

    pwd = input("请输入密码:")

    # 如果密码长度>=8,返回用户输入的密码

    if len(pwd) >= 8:

        return pwd

    # 如果 < 8 主动抛出异常

    print("主动抛出异常")

    # 1> 创建异常对象

    ex = Exception("密码长度不够")

    # 2> raise 主动抛出异常

    raise ex

 

 

# 提示用户输入密码

try:

    print(input_password())

except Exception as result:

    print(result)

 

    # 3.finally扫尾工作处理方案

    try:

 

        a = int(input("请输入 a 的值:"))

 

        print(20 / a)

 

    except:

 

        print("发生异常!")

 

    else:

 

        print("执行 else 块中的代码")

 

    finally:

 

        print("执行 finally 块中的代码")

 

 

 

from OutOfAge import OutOfAge # 4.自定义异常处理案例

 

x = input('请输入一个数:')

y = input('请输入另一个数:')

try:

    a = int(x)

 

    if a < 18:

        raise OutOfAge

    b = int(y)

 

    if b == 0:

        raise ZeroDivisionError

 

    c = a / b

except OutOfAge:

    print('自定义异常处理类')

except ValueError:

    print('检查输入字符串是否为可转换为整数。')

except ZeroDivisionError:

    print('除以 0 错误。')

else:

    print('没有错误。')

finally:

    print('程序执行完毕。')

 

# 5. 常见异常处理

try:

    num1 = int(input("请输入第一个数字: "))

    num2 = int(input("请输入第二个数字: "))

    result = num1 / num2

    print("结果:", result)

 

except ValueError as ve:

    print(f"数值输入错误: {ve}")

 

except ZeroDivisionError as zde:

    print(f"除数不能为零: {zde}")

 

# 6. 默认异常处理方案

try:

    file = open("不存在的文件.txt", "r")

except Exception as e:

    print(f"默认异常处理: {e}")

输出结果

C:\Users\19553\.conda\envs\gametanke\python.exe C:\Users\19553\.conda\envs\douban\venv\module.py 

请输入您的年龄:12

请输入密码:134532

主动抛出异常

密码长度不够

请输入 a 的值:3

6.666666666666667

执行 else 块中的代码

执行 finally 块中的代码

请输入你的年龄:12

你是未成年人。

请输入一个数:24

请输入另一个数:24

没有错误。

程序执行完毕。

请输入第一个数字: 5

请输入第二个数字: 7

结果: 0.7142857142857143

默认异常处理: [Errno 2] No such file or directory: '不存在的文件.txt'

 

进程已结束,退出代码为 0

 

 

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值