码迷,mamicode.com
首页 > 其他好文 > 详细

exception.py

时间:2016-06-26 15:22:26      阅读:304      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!