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)
4、print('*******跨层级********')def fn1(n): return 1/ndef fn2(n): return fn1(n)
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('我爱中国&垆杪屑丝#39;) 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**')