python捕获异常

"""
try:
    可能出现异常的语句
except 异常类型1:
    出现异常后会自动执行的代码
except 异常类型2:
    出现异常后会自动执行的代码
except:
    出现未知异常后会自动执行的代码
"""
# 计算器案例练习
try:
    a = int(input("请输入数字1:"))
    b = int(input("请输入数字2:"))
    op1 = input("请输入运算符号:")
    if op1 =="+":
        print(a + b)
    elif op1 == "-":
        print(a - b)
    elif op1 == "/":
        print(a / b)
    elif op1 == "*":
        print(a * b)
    else:
        print("运算符号输入不正确")
except ValueError: # 从异常提示中找到错误类型
    print("请输入正确的数字")
except ZeroDivisionError:
    print("被除数不能为0")
except : # 未知错误处理
    print("输入有误")

# **************************************************************
# else:没有异常发生执行的代码
"""
try:
    可能出现异常的语句
except:
    出现异常后会自动执行的代码
else:
    没有异常发生执行的代码
"""
try:
    a = int(input("请输入数字1:"))
    b = int(input("请输入数字2:"))
    op1 = input("请输入运算符号:")
    if op1 =="+":
        print(a + b)
    elif op1 == "-":
        print(a - b)
    elif op1 == "/":
        print(a / b)
    elif op1 == "*":
        print(a * b)
    else:
        print("运算符号输入不正确")
except :
    print("输入有误")
else:
    print("运算完成")

# **************************************************************
# 使用Exception as 捕获未知异常,并将系统提示显示出来
try:
    a = int(input("请输入数字1:"))
    b = int(input("请输入数字2:"))
    print(a / b)
except Exception as result:  # 将系统异常作为result显示出来
    print(result)

# **************************************************************
# finally 无论是否出现异常都要执行的代码
"""
try:
    可能出现异常的语句
except:
    出现异常后会自动执行的代码
finally:
    无论是否异常都会执行的代码
"""
try:
    a = int(input("请输入数字1:"))
    b = int(input("请输入数字2:"))
    print(a / b)
except:
    print("输入有误")
finally:
    print("执行完毕")

# **************************************************************
# 异常案例
try:
    a = int(input("请输入数字1:"))
    b = int(input("请输入数字2:"))
    print(a / b)
except ValueError: # 从异常提示中找到错误类型
    print("请输入正确的数字")
except ZeroDivisionError:
    print("被除数不能为0")
except Exception as result:  # 将系统异常作为result显示出来
    print("未知异常:" + result)
else:
    print("运算无误")
finally:
    print("执行完毕")

# **************************************************************
# 主动抛出异常:raise Exception
# 且只要有异常未被捕获,代码就会被终止
try:
    a = input("请输入1:")
    b = input("请输入2:")
    print(a + b)
    raise Exception("主动抛出的异常:")   # 这是系统主动抛出异常
except Exception as result:
    print("是否可以输出")  # 这里不会输出,因为有主动异常发生,且未捕捉

# ***********************************************************************************
"""
手动输入变量name与age的值,age为数字
当name中有数字,抛出异常
当age小于等于0,抛出异常
捕捉异常
"""
# 设计一个函数,若str1中有数字返回true,否则返回false
def digital(str1):
    for n in str1:
        if n >= "0" and n <= "9":
            return True
    return False
try:
    name = input("请输入姓名:")
    if digital(name):
        raise Exception("姓名中不允许含有数字")  # 主动抛出异常
    age = int(input("请输入年龄:"))
    if age <= 0:
        raise Exception("年龄不可小于等于0")  # 主动抛出异常
except Exception as result:  # 捕获异常
    print(result)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值