python基础之异常

情况一:

>>> try:
	print(num)                #此处产生异常
	print("-----hello-----")  # 上面代码产生错误,此处不执行,跳过
except NameError:             #  NameError 为异常名称
	print("-----Error-----")  #try中产生异常,执行此处代码

-----Error-----

情况二:

>>> try:
	print(num)                    #此处产生异常
	print("-----hello-----")      #上面代码产生错误,此处不执行,跳过
except (NameError,FileNotFound):  #NameError 为异常名称,可以是多个,python3中用元组
	print("-----Error-----")      #try中产生异常,执行此处代码

-----Error-----

情况三:

>>> try:
	print(num)                    #此处产生异常
	print("-----hello-----")      #上面代码产生错误,此处不执行,跳过
except (NameError,FileNotFound):  #NameError 为异常名称,可以是多个,python3中用元组
	print("-----Error1-----")      #try中产生异常,执行此处代码
except Exception:                 #不是上面的异常,其他的异常都会捕捉到
    print("-----Error2-----")

-----Error1-----

情况四:

>>> try:
	print(num)                    #此处产生异常
	print("-----hello-----")      #上面代码产生错误,此处不执行,跳过
except Exception:                 #无论什么异常都会捕捉到
    print("-----Error2-----")     #捕捉到异常后,执行下面代码

-----Error2-----

情况五:

try:
	print(num)                    #此处产生异常
	print("-----hello-----")      #上面代码产生错误,此处不执行,跳过
except Exception as ret:          #捕捉到的异常放入ret中,并执行下面的代码
    print("-----Error2-----")
    print(ret)

-----Error2-----
name 'num' is not defined

情况六:

try:
	print("-----hello-----")      
except Exception as ret:          #捕捉到的异常放入ret中,并执行下面的代码
    print("-----Error2-----")
    print(ret)
else:                             #没有异常时,执行下面代码
	print("-----NoError-----")

-----hello-----
-----NoError-----

情况七:

>>> try:
	print("-----hello-----")      
except Exception as ret:          #捕捉到的异常放入ret中,并执行下面的代码
    print("-----Error2-----")
    print(ret)
else:                             #没有异常时,执行下面代码
	print("-----NoError-----")
finally:                          #无论有没有异常,都执行下面的代码
	print("程序执行完毕")

-----hello-----
-----NoError-----
程序执行完毕

异常的传递:假如test1()调用test2(),test2()中出现异常,但是test2()中没有对异常的处理,那么异常将传递给test1(),test1()中也没有异常的处理,那么异常传递给test3(),test3()会处理,不会交给系统。

def test3( ):
    try:
        print("-----3-----")
        test1( )
    except Exception:
        print("-----Error----")

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值