异常处理

异常:程序出现的逻辑错误或者用户输入不合法导致程序崩溃死掉。

例如:

a=4;
b=int(input('请输入被除数:'))
c=a/b;
print(c)
#如果input框里的值是零(零不能做除数),
#结果异常:ZeroDivisionError: division by zero
异常处理:程序出现异常时编写程序的正常现象,我们可以利用一些方法将异常捕获使程序正常运行。

用esecpt来捕获异常有一下三种情况:

  1.    正常情况:
    try:
        代码段(此处不会产生异常)
    execpt(异常类型):(绕过执行)
        对异常处理的代码段
    代码段
    2.产生异常
    try:
        代码段1
        产生异常代码段2
        代码段3
    execpt(异常类型):
        对异常处理的代码段4
    代码段5
    a=4;
    b=input('请输入被除数:')
    try:
        b=int(b)
        c=a/b;
        print(c);
    except Exception:
        print('出现错误')
    print('程序结束!')
    3.多路捕获:原则子类在前父类在后而且只捕获一个
  2. try:
        代码段1
        产生异常代码段2
        代码段3
    execpt(异常类型):
        对异常处理的代码段4
    execpt(异常类型):
        对异常处理的代码段4
    execpt(异常类型):
        对异常处理的代码段4
    代码段5
  3. a=4;
    b=input('请输入被除数:')
    try:
        b=int(b)
        c=a/b;
        print(c);
    except ZeroDivisionError:
        print('零不能做除数')
    except ValueError:
        print('输入值错误')
    except Exception:
        print('出现错误')
    print('程序结束!')
  4. 还可加入else语句和finally语句,如下:
  5. a=10;
    b=input('请输入被除数:');
    if not b.isdigit():
        print('输入错误请输入数字:')
    else:
        b=int(b);
        if b == 0:
            print("被除数不能为0  ")
        else:
            c = a / b;
            print(c)
    try:
        b = int(b);
        c = a / b;
        print(c)
    except ZeroDivisionError as zero:#as作用输出英文错误类型名称
        print('被除数不能为0..异常信息:',zero)
    except ValueError as v:
        print('转换数字 出错 请输入数子.异常信息:',v)
    except Exception:
        print('发生错误!')
    else:#没有错误执行语句
        print("程序正常结束..")
    finally: #最终执行语句
        try:
            del a,b,c
        except Exception as e:
            print(e)
        print("finally: 块儿  释放资源 ")
    print('程序其他代码!')
    自定义异常捕获:一般继承父类,异常不会自动抛出需要用raise手动抛出
  6. class SexException(Exception):
        pass
    
    def inputSex():
        sex=input('请输入性别:')
        if sex!='男' and sex!='女':
            raise SexException("性别只能是男 或 女 ")
        print('输入的性别:',sex)
    
    try:
        inputSex();
    except SexException as s:
        print(s)
    未完待续


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值