首页 > 其他 > 详细

exception.py

时间:2016-06-26 15:20:38      阅读:209      评论:0      收藏:0      [点我收藏+]
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

原文:http://www.cnblogs.com/feifeidxl/p/5617889.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!