【发布时间】:2014-09-09 18:48:48
【问题描述】:
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("Failed due to Incorrect %g value" % 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
【问题讨论】:
-
您确定它没有同时打印带有替换的消息吗?它会将
raise显示为回溯的最后一行,但之后它还应该打印异常消息。 -
这没有任何意义。标准的字符串格式化运算符(
%或.format)应该在任何上下文中工作,包括创建的异常。我怀疑您正在查看输出的错误部分,正如@BrenBarn 所建议的那样。 -
这个问题似乎是题外话,因为问题不是真实的。
-
它是如何打印的? - 其他代码是否捕获异常并打印,或者您是否在脚本终止时收到标准 python 回溯消息?你是说这两种情况都打印了“由于值不正确而失败”?
-
我认为您的代码捕获了异常,打印回溯然后打印异常的类型,而不是异常消息。所以,有趣的代码是异常处理程序。
标签: python exception exception-handling custom-exceptions raise