Python:捕获特定异常

Python:捕获特定异常,第1张

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。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zaji/5601686.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-15
下一篇2022-12-15

发表评论

登录后才能评论

评论列表(0条)

    保存