python中监控错误的语句_python中用try--except查找出代码错误的使用

'''

#需求:当程序遇到问题不让程序结束,而需要越过错误继续向下执行

'''

'''

异常处理

try……except……else

格式:

try:

语句a

except 错误码 as e:

语句1

except 错误码 as e:

语句2

……

except 错误码 as e:

语句n

else:#else语句可有可无

语句x

作用:用来检测try语句块中的错误,从而让except语句捕获错误

信息并处理

逻辑:当程序执行到try--except--else语句时

1、当try“语句a”执行出现错误时,会匹配第一个错误码,如果

匹配上就执行对应“语句”

2、如果当try“语句”执行错误,但是except没有匹配到异常,错误将会

被提交到上一层的try语句。或者到程序的最上层

3、如果当try"语句a"执行没有出现错误,执行else下的“语句x”

'''

'''

try---except方法捕获到错误就不执行后面程序了

a=0

try:

print(3/0)

print(x)

except ZeroDivisionError as e:

print("除数不能为0")

a+=1

except NameError as e:

print("没有该变量")

a += 1

else:

print("代码没问题")

print("出现%d个错误"%(a))#显示a=1 这方法只能报错一个

#使用except而不适用任何的错误类型

a = 0

try:

print(3/0)

print(x)

except:

print("程序出现了异常")

a+=1

#使用except带着多个异常

try:

print(3 / 0)

print(x)

except(ZeroDivisionError,NameError,TypeError):

print("出现了错误")

'''

'''

#特殊

# 1 错误异常是class(类),所有的错误都继承自BaseException,

#所以在捕获的时候,它捕获了类型的错误,还把子类都捕获了

try:

print(3/0)

except BaseException as e:

print("错误")

#错误 被前面捕获了

except ZeroDivisionError as e :

print("除数不能为0")

'''

#2、跨越多层调用,main调用了func2,func2调用了func1,func1出现了错误

#只要main捕获到了错误,就可以处理

def func1(num):

print(1/num)

def func2(num):

func1(num)

def main():

func2(0)

try:

main()

except:

print("****")

try……except……finally:

格式:

try:

语句a

except 错误码 as e:

语句1

except 错误码 as e:

语句2

……

except 错误码 as e:

语句n

finally:

语句x

作用:无论语句a是否有错,都执行finally后的语句x

try:

print(3/0)

except:

print("错误了")

finally:

print("来打我啊")#前面不管如何,都执行这句

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值