您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python:捕获特定异常

Python:捕获特定异常

except ValueError,ee是例外,而不是字符串的实例。因此,当您测试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,而不是引发ValueErrorinmacdat,则可以引发自定义异常,该异常继承自ValueError

class MyValueError(ValueError): pass

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

python 2022/1/1 18:37:41 有238人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶