exception.py
Posted *飞飞*
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了exception.py相关的知识,希望对你有一定的参考价值。
try: raise Exception except Exception as e: print(e) try: raise Exception(‘comment‘) except Exception as e: print(e) class SomeException(Exception): print(‘aa‘) pass try: raise SomeException #只能捕获这个异常,不能捕获其他如1/0异常 except SomeException: #这个为什么不行 print(‘no‘) ‘‘‘ try: a=0 1/0 except ZeroDivisionError: if a==1: print(‘no problem‘) else: raise #捕捉到了异常,但又想重新引发它 ‘‘‘ #多个except语句 #只有第一条语句的错误发现,然后捕获这个异常后,后面语句的异常不会被捕获 try: a=1/0 b=‘a‘+1 except TypeError: print(‘1‘) except ZeroDivisionError: print(‘2‘) #结果是2 #一个块捕获多个异常 #也只能捕获第一个异常 try: a=1/0 b=‘a‘+1 except (TypeError,ZeroDivisionError): print(‘error‘) try: b=‘a‘+1 a=1/0 except (ZeroDivisionError,TypeError) as e: #捕捉对象 print(e) #Can‘t convert ‘int‘ object to str implicitly捕捉第一条语句 #全捕捉 try: a=1/0 b=‘a‘+1 except: print(‘error‘) #else 语句 while True: try: x=input(‘x‘) y=input(‘y‘) print(x/y) except: print(‘invalid, input again‘) else: #没有异常引发的情况下执行 break #finally 语句 #finally 用于关闭文件或网络套接字时会非常有用 #不管是否发生异常,finally一定会被执行 #sys.exit退出当前程序,finally中内容仍然会被执行 #x被初始化为None原因,由于ZeroDivisionError存在,x就永远不会被赋值 #这样就导致在finally中使用del删除它的时候产生异常,而且这个异常是无法捕捉的 x=None try: x=1/0 finally: #finally 要与 try 对齐 print(‘cleaning up‘) #在程序崩溃前,对x的清理已经完成了 del x try: 1/0 except ZeroDivisionError: print(‘1‘) else: print(‘2‘) finally: print(‘3‘) #结果1,3
以上是关于exception.py的主要内容,如果未能解决你的问题,请参考以下文章