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----")

猜你喜欢

转载自blog.csdn.net/Panda996/article/details/84799831