2

我是 Python 新手。如果我的问题听起来很愚蠢,请原谅我。

下面的代码将引发错误,但 try/except 不会捕获该错误。我已经经历了很多次,但看不出有什么问题。

如果这里有任何大师可以向我展示问题,将不胜感激。

谢谢你的时间。

import decimal

try:
    Amount = str(decimal.Decimal('2.675a').quantize(decimal.Decimal('.01'), rounding=decimal.ROUND_HALF_UP))
    print Amount
except ValueError:
    print 'Error'

我得到的错误是:

File "C:\Python27\lib\decimal.py", line 548, in __new__
  "Invalid literal for Decimal: %r" % value)
File "C:\Python27\lib\decimal.py", line 3866, in _raise_error
  raise error(explanation)
InvalidOperation: Invalid literal for Decimal: '2.675a'
4

1 回答 1

5

您的代码片段引发的错误是一个decimal.InvalidOperation异常。此异常不是子类,因此与您的子句ValueError不匹配。except

我建议阅读有关错误和异常处理的教程部分,以了解有关如何处理 Python 代码中的错误的更多概述。

于 2012-11-08T07:26:27.443 回答