-1
if not(my_value < max_limit):
    print "value of is %g and hence invalid. It can be upto $g" % (my_value, max_limit)
    raise LimitFailureCheck("Failed due to Incorrect value")

LimitFailureCheck我已经在其他模块中定义了我的自定义异常。我想在 my_value > max_limt 时提高它。因此,我按照上述方法进行了编码。它工作正常。我想问的是给用户更多信息,我已经写了打印声明,也说明了问题到底是什么。我可以在提出自定义异常时做同样的事情吗?我试过了

raise LimitFailureCheck("Failed due to Incorrect %g value" % my_value)

但是它在打印输出时提出了相同的声明。

raise LimitFailureCheck("由于 %g 值不正确而失败" % my_value)

我希望得到

raise LimitFailureCheck("Failed due to Incorrect 99 value")

我收到的输出:


Traceback (most recent call last):
  File "runtest.py", line 69, in attempt
    func()
  File "c:\Users\pran\projects\check.py", line 66, in runmytest
    raise LimitFailureCheck('"Failed due to Incorrect %g value" % my_value
)
LimitFailureCheck
4

2 回答 2

0

当您在命令行上运行 python 并且由于未处理的异常而退出 python 时,python 将显示回溯和异常字符串。

当我运行这个测试程序

class LimitFailureCheck(Exception):
    pass

raise LimitFailureCheck('i am %s' % 'sad')

蟒蛇说

Traceback (most recent call last):
  File "sad.py", line 4, in <module>
    raise LimitFailureCheck('i am %s' % 'sad')
__main__.LimitFailureCheck: i am sad

请注意,python 显示了失败的行和失败消息。如果您不想要这种行为,您可以捕获异常并打印您自己的消息。这是另一个脚本

class LimitFailureCheck(Exception):
    pass

try:
    raise LimitFailureCheck('i am %s' % 'sad')
except LimitFailureCheck, e:
    print 'raise LimitFailureCheck("%s")' % e

显示

raise LimitFailureCheck("i am sad")
于 2014-09-09T19:14:24.553 回答
-1

您可能想尝试格式化。

raise LimitFailureCheck('Failed due to Incorrect {0} value'.format(my_value)
于 2014-09-09T18:52:04.453 回答