Python错误和异常

       在我们开发程序过程中,总会遇到各种错误。有的错误是由于程序编写有问题造成的,比如本应该输出整数结果输出了字符串,这种错误我们称之为bugbug是必须修复的。有的是用户输入错误造成的,比如让用户输入email地址,结果得到空字符串,这种错误可以通过检查用户输入来做相应处理。还有一类错误是完全无法在程序运行过程中预测的,比如磁盘满了,网络突然连接失败......这类错误称为异常。Python内置了一套异常处理机制,来帮助我们进行错误处理。

       此外,我们需要跟踪程序执行,查看变量是否正确,这个过程称为调试。最后,编写测试也很重要,有了良好的测试,就可以在程序修改后反复运行,确保程序符合我们编写的测试。

1.错误处理

       Python内置了一套 try...except...finally... 的错误处理机制,接下来通过例子了解一下~~~

try:
    #主代码块
    pass
except IndexError as e:
    #异常时,执行该块--索引错误
    print(e)
except KeyError as e:
    #异常时,执行该块--键错误
    print(e)
except ValueError as e:
    #异常时,执行该块--值错误
    print(e)
except Exception as e:
    #万能异常:Exception,他可以捕获任意异常!既然有这个万能异常,其他异常是不是就可以忽略?当然不是,对于特殊处理或提醒的异常需要先定义,最后定义Exception来确保程序正常运行。
    print(e)
else:
    #主代码块执行完,执行该块
    pass
finally:
    #无论异常与否,最终都会执行该块
    pass
#try...except...finally
try: 
    print('try...')
    r = 10 / 0
    print('result:',r)#错误发生,后续语句不再执行
except ZeroDivisionError as e: #有错误,捕获错误;没有错误,不执行
    print('except:',e)
finally:#无论是否发生错误都会执行
    print('finally...')
print('END')

#注:try来运行可能会出错的代码,如果执行出错,则后面的代码不会继续执行,而是直接跳到错误处理代码,即except语句块;执行完except后,如果有finally语句块,则执行finally语句块;至此,执行完毕!
结果:上述代码计算10/0时产生一个除法运算错误
try...
except: division by zero
finally...
END

       如果有多种不同类型错误怎么做?没错,可以用多个except来捕获不同类型的错误:

#try...except...except...else...finally
try:
    print('try...')
    r = 10 / int('a')
    print('result:',r)
except ValueError as e: #捕获ValueError
   
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值