python基础复习(27)--异常处理

#函数的异常补捉
def fun():
    print("start")
    n=1/0
    print("end")

try:
    fun()
except Exception as err:
    print(err)


#如果fun中已经捕捉到了异常,那么主程序位置就捕捉不到了
def fun():
    print("start")
    try:
        n=1/0
        print("end")
    except:
        print("error")

try:
    fun()
except Exception as err:
    print(err)


#异常的传递
def A():
    print("start A")
    n=1/0
    print("end A")

def B():
    print("start B")
    A()
    print("end B")

try:
    B()
    print("done")
except Exception as err:
    print(err)
print("finish")


#异常的传递
def A():
    print("start A")
    n=1/0
    print("end A")

def B():
    print("start B")
    try:
        A()
    except Exception as err:
        print(err)
    print("end B")

try:
    B()
    print("done")
except Exception as err:
    print(err)
print("finish")

#异常的传递,异常一直没有捕获,那就传递到系统,程序就会终止
def A():
    print("start A")
    n=1/0
    print("end A")

def B():
    print("start B")
    A()
    print("end B")

B()
print("finish")

#抛出异常
def mytime():
    h=input("h:")
    h=int(h)
    if h<0 or h>23:
        raise Exception("invalid hour")
    m=input("m:")
    m=int(m)
    if m<0 or m>59:
        raise Exception("invalid minute")
    s=input("s:")
    s=int(s)
    if s<0 or s>59:
        raise Exception("invalid secends")
    print("%02d:%02d:%02d"%(h,m,s))

try:
    mytime()
except Exception as err:
    print(err)

猜你喜欢

转载自blog.csdn.net/xt18971492243/article/details/112257448