一、通过try...execpt从句处理异常

#!/usr/bin/python
#coding=utf-8
 
stockInfoList = ["12580", "65535"]

try:
    stockInfoList.remove("123456")
except:
    print("can't remove from list")

try:
    2 + "error"  #函数参数类型不正确时会触发
except TypeError:
    print("type error")


def divide(x, y):
    try:
        return x/y
    except(ZeroDivisionError, TypeError, Exception) as e:
        print(e)

divide(1, "1")
divide(1, 0)      
笔记:

1、当在try部分出现异常后,抛出的异常会被except从句捕获并进行处理,处理之后就能继续执行except之后的程序语句。
2、可以在except从句中通过参数来指定except从句能捕获和处理哪一类或者多类异常。

测试效果:

二、通过raise语句直接抛出异常

#!/usr/bin/python
#coding=utf-8
    
def divide(x, y):
    if y==0:
        raise Exception("Divisor is 0")
    try:
        return x/y
    except (TypeError):
        raise Exception("Parameters Type Error")
    
try:
    print(divide(1, 0))
except (Exception) as e:
    print(e)
    
try:
    print(divide(1, "1"))
except (Exception) as e:
    print(e)
print("following job")
笔记:
1、通过raise可以抛出自定义异常信息。

测试运行:

三、finally从句

#!/usr/bin/python
#coding=utf-8
    
def func():
    try:
        print("func")
        return "return func"
    finally:
        print("finally")
        return "return finally"
        
print(func())
笔记:
1、不管发生异常或否,或者不管发生何种异常,finally程序语句都会被执行到。
2、若将finally后的return语句注释掉,程序将会执行try中的return语句。

测试运行:

(没有注释:)

(注释:)

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐