python3.6
pycharm
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))
print('********分割符**********')try: print(111) a print(222)except NameError as error: print(error)else: # 如果try内部的代码没有异常抛出,else里的代码会正常执行。 print(333)finally: # 内部代码一定会执行,但是不影响是否崩溃 print(444)
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)
def fn3(n): return fn2(n)try: print(111) print(fn3(0)) print(222)except BaseException as e: print(e)
print('***********断言************')def good(n): assert n # 如果表达式的值为真,代码继续运行。否则,直接抛出一个AssertionError return 1/ntry: print(good(5))except AssertionError as e: print(e, type(e))
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**')
蓝色的为系统关键字,如不明白,可百度一下。