栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python:捕获特定异常

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python:捕获特定异常

except ValueError,e
e
是例外,而不是字符串的实例。因此,当您测试
e
不等于特定字符串时,该测试始终为False。尝试:

if str(e) != "..."

代替。

例:

def catch(msg):    try:        raise ValueError(msg)    except ValueError as e:  # as e syntax added in ~python2.5        if str(e) != "foo": raise        else: print("caught!")catch("foo")catch("bar")

通常,如果可以帮助您,您并不是真的希望依赖于错误消息-这太脆弱了。如果您可以控制callable

macdat
,而不是引发
ValueError
in
macdat
,则可以引发自定义异常,该异常继承自
ValueError

class MyValueError(ValueError): pass

然后,您只能捕获

MyValueError
并让其他
ValueError
s继续被其他事物捕获(或不捕获)。Simple
exceptValueError
仍然也会捕获这种类型的异常,因此它在其他代码中的行为应相同,这也可能从此函数捕获ValueErrors。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/596350.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号