Python 值错误和字符串异常

Python 值错误和字符串异常,python,Python,我在以我想要的方式工作时遇到了ValueError问题 我有一个返回字符串的函数,但如果它不是从函数中引发的,我不希望它也计算为ValueError 示例代码 输出 如果我正确阅读了文档,它说它可以由字符串引发,那么如何防止这种行为 我不知道为什么它以前会起作用,但我把它说得更清楚了,现在它就起作用了。第一个例子也比较模糊,我试图从库中的函数中捕捉错误 示例代码 输出 1如果ValueError始终为真,则将始终执行打印。2您的函数总是引发错误,因为如果a==a总是true。3您没有做任何事情来

我在以我想要的方式工作时遇到了ValueError问题

我有一个返回字符串的函数,但如果它不是从函数中引发的,我不希望它也计算为ValueError

示例代码

输出

如果我正确阅读了文档,它说它可以由字符串引发,那么如何防止这种行为


我不知道为什么它以前会起作用,但我把它说得更清楚了,现在它就起作用了。第一个例子也比较模糊,我试图从库中的函数中捕捉错误

示例代码

输出


1如果ValueError始终为真,则将始终执行打印。2您的函数总是引发错误,因为如果a==a总是true。3您没有做任何事情来捕捉错误我不清楚你想在这里做什么。也许你在寻找try..catch语法@deceze这里是答案,这个代码仍然大部分是胡说八道。我不知道它应该完成什么。
def test(a):
    if a == a:
        raise ValueError('There was a error # 2')


a = 'a'
if ValueError:
    print "There was a error # 1"


test(a)
There was a error # 1
Traceback (most recent call last):
  File "/home/user/Test_1.py", line 13, in <module>
    test(a)
  File "/home/user/Test_1.py", line 5, in test
    raise ValueError('There was a error # 2')
ValueError: There was a error # 2

Process finished with exit code 1
def test(a):
    try:
        if a == a:
            pass
        raise ValueError('There was a error # 2')
    except Exception, e:
        str(e)
        return e

a = 'a'

b = test(a)

if type(b) == ValueError:
    print b
There was a error # 2

Process finished with exit code 0