现在的位置: 首页 > 综合 > 正文

004_022 Python 在表达式中处理异常

2017年12月10日 ⁄ 综合 ⁄ 共 421字 ⁄ 字号 评论关闭

代码如下:

#encoding=utf-8

print '中国'

#在表达式中处理异常

#借助辅助函数
def throws(t,f,*a,**k):
    '''如果f(*a,**k)抛出一个异常,而且类型是t的话返回true'''
    try:
        f(*a,**k)
    except t:
        return True
    else:
        return False
    
#d:\123.txt内容如下
#2014,3,23
data=[float(line) for line in open(r'd:\123.txt') if not throws(ValueError,float,line)]
print data
        
def returns(t, f, *a, **k):   
    try:
        return [ f(*a, **k) ]
    except t:
        return [ ]
    
data=[x for line in open(r'd:\123.txt') for x in returns(ValueError,float,line)]
print data

打印结果如下:

中国
[]
[]

抱歉!评论已关闭.