多语言展示
当前在线:1470今日阅读:23今日分享:25

零基础学python错误error处理详解

# 默认情况下,当系统捕获到异常以后会先打印错误信息,然后让程序崩掉。# try-except有点类似于if-elif,如果try内部所有的代码正常运行,那么所有的except都会跳过# 如果有错误,会顺序匹配except,代码进入到对应的except中。# 如果错误类型到最后一个except都没有匹配到,这个错误依然由系统处理。
工具/原料
1

python3.6

2

pycharm

方法/步骤
1

try:    print(1111)    1 / 0    print(222)except NameError as error:   # except跟错误类型(系统自带)    print(333, error, type(error))  # 然后自己写的处理代码except ZeroDivisionError as error:    print(444, error, type(error))except TypeError as error:    print(555, error, type(error))except BaseException as error:    print(666, error, type(error))

2

print('********分割符**********')try:    print(111)    a    print(222)except NameError as error:    print(error)else:  # 如果try内部的代码没有异常抛出,else里的代码会正常执行。    print(333)finally:  # 内部代码一定会执行,但是不影响是否崩溃    print(444)

3

print('**********可以混合判断*********')try:    print(111)    '1' + 1    print(222)except (NameError, ZeroDivisionError, TypeError) as e:    print(333, e, type(e))except BaseException as e:    print(444, e)

5

def fn3(n):    return fn2(n)try:    print(111)    print(fn3(0))    print(222)except BaseException as e:    print(e)

6

print('***********断言************')def good(n):    assert n  # 如果表达式的值为真,代码继续运行。否则,直接抛出一个AssertionError    return 1/ntry:    print(good(5))except AssertionError as e:    print(e, type(e))

7

print('********断言升级版*********')def dog(n):    if not n:        raise TypeError('我爱中国')    return 1 / ndef make():    try:        print(dog(0))    except TypeError as e:        print(e, type(e), 111)        raise etry:    make()except BaseException as e:    print(e, type(e), 222)print('**end**')

注意事项

蓝色的为系统关键字,如不明白,可百度一下。

推荐信息